【Flask】Respones

Flask中的HTTPResponse

from flask import Flask,redirect
app = Flask(__name__)

@app.route("/index")
def index():
    return "hello word"    # HttpResponse【返回字符串】

if __name__ == ‘__main__‘:
    app.run("0.0.0.0",9876)

在Flask 中的HttpResponse 在我们看来其实就是直接返回字符串和django中的HttpResponse("hello word")一样

Flask中的render

使用模板渲染页面时我们需要导入render_template;并且需要在项目的目录下创建一个templates文件夹用来存放html页面;

否则可能会有一个Jinja2的异常

遇到上述的问题,基本上就是你的template的路径问题

设置该文件夹为模板文件夹

from flask import Flask,render_template
app = Flask(__name__)

@app.route(‘/‘)
def home():
    # 模板渲染
    return render_template("home.html")

if __name__ == ‘__main__‘:
    app.run("0.0.0.0",9876)

flask的模板渲染和django的模板渲染差不多,只不过django用的render而flask用render_template

Flask中的redirect

from flask import Flask,redirect      # 导入redirect
app = Flask(__name__)

@app.route(‘/‘)
def home():
    # 访问/重定向到index页面
    return redirect("/index")

@app.route("/index")
def index():
    return "hello word"    # HttpResponse

if __name__ == ‘__main__‘:
    app.run("0.0.0.0",9876)

每当访问/就会重定向到index页面

Flask返回特殊的格式

返回JSON格式的数据

jsonify

from flask import Flask,jsonify
app = Flask(__name__)

@app.route(‘/‘)
def home():
    return jsonify({"name":"henry","age":18})
    # 在Flask 1.1.1 版本中 可以直接返回字典类型 可以不再使用jsonify了
    # return {"name":"henry","age":18}

if __name__ == ‘__main__‘:
    app.run("0.0.0.0",9876)

响应头中加入 Content-type:application/json

发送文件

send_file

打开并返回文件内容,
自动识别文件类型,
响应头中加入Content-type:文件类型
ps:当浏览器无法识别Content-type时,会下载文件

我们以图片为列:

from flask import Flask,send_file
app = Flask(__name__)

@app.route(‘/‘)
def home():
    # 访问/路径给返回一个图片
    return send_file("templates/jypyter.png")

if __name__ == ‘__main__‘:
    app.run("0.0.0.0",9876)

查看响应头中的Content-type类型

其他content-type

MP3 【Content-Type: audio/mpeg】
MP4 【Content-Type: video/mp4】

原文地址:https://www.cnblogs.com/youxiu123/p/11605770.html

时间: 2024-11-05 22:37:56

【Flask】Respones的相关文章

【Flask】 结合wtforms的文件上传表单

表单中的文件上传 基本的表单渲染,表单类设置等等就不多说了,参看另一个文章即可.但是那篇文章里没有提到对于FileField,也就是上传文件的表单字段是如何处理,后端又是如何实现接受上传过来的文件的.因为看到了一篇很好的文章[https://zhuanlan.zhihu.com/p/23731819?refer=flask],所以我决定仔细学习一下.下面将按照那篇文章的脉络,由简至繁地说明表单中文件上传的办法. ■ 利用Flask原生的机制进行文件上传 首先在前端肯定有一个带有文件上传功能的表单

【Flask】 使用Flask-Moment进行日期时间的管理

Flask-Moment Flask-Moment又是一个flask的扩展模块,用来处理时间日期等信息.用这个模块主要是考虑到两点,第一是为了让不同时区的用户看到的都是各自时区的实际时间,而不是服务器所在地的时间.第二是对于一些时间间隔的处理,如果要手动处理很麻烦,如果有模块就很好了. ■ 简介 pip install flask-moment  来安装这个扩展模块.值得一提的是,单单在后台装好这个拓展模块是不够的,还需要前端的配合,因此前端也要配置好相关的支持库.按书上说的,使用了由JS开发的

【Flask】 项目结构说明

项目结构 Flask的一大优势就是其极其轻量化.但是也需要注意到,如果我们要用Flask做一个大项目的话,把所有代码写在一个文件里肯定是不合适的.非常难以维护.但是和Django这种框架又不一样,Flask并没有规定项目一定要遵从某种必须遵守的目录结构.最终,人们在长期的实践中得到一些比较好用因此约定俗成的目录结构. 一个典型的flask项目的目录结构是这样的(再次明确,不是强制的,而是约定俗成的一种结构): 这种结构有四个顶级文件夹,主体的程序代码都放在app包中:migrations文件夹中

【Flask】 WTForm表单编程

WTForm表单编程 在网页中,为了和用户进行信息交互总是不得不出现一些表单.flask设计了WTForm表单库来使flask可以更加简便地管理操作表单数据.WTForm中最重要的几个概念如下: Form类,开发者自定义的表单必须继承自Form类或者其子类.Form类最主要的功能是通过其所包含的Field类提供对表单内数据的快捷访问方式. 各种Field类,即字段.一般而言每个Field类都对应一个input的HTML标签.比如WTForm自带的一些Field类比如BooleanField就对应

【Flask】 Jinja2模板语言

Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多Jinja2的使用方法啊,下面将补充或者更加详细地说明Jinja2作为模板语言的使用. [Jinja2官方文档]http://docs.jinkan.org/docs/jinja2/ ■ 基本语义 看过之前模板的例子就知道,Jinja2做构成的模板文件中,文本内容大致可以分成几个种类.比如特殊文本(

【Flask】Request

请求方式 Flask默认是GET请求 如果我们在一个页面中即需要GET请求又需要POST请求那么我们需要重写methods方法: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="&

【flask】使用pipenv管理依赖环境

[前堤] 已经安装了pipenv环境,并且项目目录下存在pipfile 如果要在另一个开发环境做开发,则将代码和Pipfile复制过去,运行以下命令: pipenv install --dev 是否要将Pipfile加入到版本管理 代码和Pipfile都应该加入版本管理,Pipfile.lock不要加入到版本管理,因为Pipfile.lock在不同的操作系统,不同的开发阶段都可能发生变化. 参考文档:拥抱pipenv 原文地址:https://www.cnblogs.com/kaerxifa/p

【Flask】跟着官网做Flaskr微博

一 创建文件夹 /flaskr /static /templates static为放置css和javascript文件. templates用来放置 Jinja2 templates模板. 二 数据库模式 这个app只使用了一个数据表,使用SQLite数据库. 创建一个schema.sql文件放入到flaskr文件夹中 drop table if exists entries; create table entries ( id integer primary key autoincremen

python16_day38【flask】

一.简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. "微"(micro) 并不表示你需要把整个 Web