04.视图函数及响应结果
2019-08-04 本文已影响0人
風行天上
视图函数
视图函数本质上是我们定义的函数,被用来返回响应的结果,视图函数的功能就是用来返回响应。之前的示例中可以看到,我们返回的是一个字符串,但经过视图函数的处理,依然作为网页被返回。
除了网页之外,我们也可以返回为其他格式,比如字符串,json,pdf等。
@app.route('/html/')
def html():
return "<h1>Hello</h1>"
默认为网页的响应结果 Content-type:text/html
上述代码返回的是一个网页,其中h1被作为一级标题呈现在浏览器中,通过查看response头部内容,我们可以看出来Response Headers中的content-type依然为text/html。从这个示例中可以看出来,不管是字符串还是加了标签的html元素,视图函数都会把它包装成content-type为text/html的网页。
纯文本的响应 Content-type:text/plain
通过修改头部信息指定响应类型,实现纯文本的输出
@app.route('/txt/')
def txt():
#返回一个元组,第一个是内容,第二个是状态码,第三个为头部信息(修改头部信息)
return "<h1>Hello</h1>", 200, {"Content-type": "text/plain; charset=utf-8"}
返回一个JASON
from flask import jsonify #导入flask包中的jsonify方法
@app.route('/json/')
def json():
student = {
'name':'Tom',
'age' : 25,
'email' : 'tom@gogofx.cn'
}
return jsonify(student) #将字典表转换为json格式返回响应
通过观察Content-type可以看出来类型为application/json,所以返回的实际上是一个json文档,不是网页或纯文本。
转跳
from flask import redirect #导入redirect方法
@app.route('/goto/')
def goto():
return redirect('/txt') #将请求转跳到/txt/地址