Python全栈开发

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/地址
上一篇下一篇

猜你喜欢

热点阅读