美文网首页Python全栈开发
04.视图函数及响应结果

04.视图函数及响应结果

作者: 風行天上 | 来源:发表于2019-08-04 13:55 被阅读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/地址
    

    相关文章

      网友评论

        本文标题:04.视图函数及响应结果

        本文链接:https://www.haomeiwen.com/subject/cufydctx.html