视图函数与普通函数看似没什么区别,其实他们的返回值上有着很大的区别。

from flask import Flask

app = Flask(__name__)

@app.route('/hello')
def hello_world():
    return 'Hello World!'

def hello_0bug():
    return 'hello_0bug'

if __name__ == '__main__':
    app.run()

视图函数的返回值是一个Response对象,里面封装了状态码content-type,cookie等信息

我们可以通过make_response来构造Response

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/hello')
def hello_world():
    headers = {
        'content-type': 'text/panin'
    }
    response = make_response('<html></html>', 404)
    response.headers = headers
    return response

if __name__ == '__main__':
    app.run()

状态码知识一个标识,可以看到404飘红了。

做一个有意思的尝试:

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/hello')
def hello_world():
    headers = {
        'content-type': 'text/plain',
        'location': 'http://www.cnblogs.com/0bug/'
    }
    response = make_response('<html></html>', 301)
    response.headers = headers
    return response

if __name__ == '__main__':
    app.run()

运行之后在访问就会重定向到博客园。

如果是返回json格式:

'content-type': 'application/json'

默认是

'content-type': 'text/html'

简写方式:

from flask import Flask

app = Flask(__name__)

@app.route('/hello')
def hello_world():
    headers = {
        'content-type': 'text/plain',
        'location': 'http://www.cnblogs.com/0bug/'
    }
    return '<html></html>', 301, headers

if __name__ == '__main__':
    app.run()

  

Flask视图函数与普通函数的区别,响应对象Response的更多相关文章

  1. onAttachedToWindow () 和 onDetachedFromWindow () ; 以及更新视图的函数ondraw() 和dispatchdraw()的区别

    protected void onAttachedToWindow() This is called when the view is attached to a window. At this po ...

  2. flask 视图函数的使用

    flask框架 视图函数当中 各种实用情况简单配置 1 建立连接 2 路由参数 3 返回网络状态码 4 自定义错误页面 5 重定向 6 正则url限制 和 url 优化 7 设置和获取cookie # ...

  3. Flask视图函数报fmalformed url rule错误的原因

    Flask视图函数报fmalformed url rule错误,原因可能是包含中文字符了 把标点符号都重新写一遍英文格式的,可能就不会报这个了

  4. Flask视图函数与模板语法

    1.Django中的CBV模式 ​ 2.Flask中的CBV和FBV def auth(func):     def inner(*args, **kwargs):         result =  ...

  5. MySQL— 索引,视图,触发器,函数,存储过程,执行计划,慢日志,分页性能

    一.索引,分页性能,执行计划,慢日志 (1)索引的种类,创建语句,名词补充(最左前缀匹配,覆盖索引,索引合并,局部索引等): import sys # http://www.cnblogs.com/w ...

  6. MySQL视图 索引 存储过程 触发器 函数

       视图: 也就是一个虚拟表(不是真实存在的),它的本质就是根据SQL语句获取动态的数据集,并为其命名.用户使用时只需要使用命名的视图即可获取结果集,并可以当做表来使用.它的作用就是方便查询操作,减 ...

  7. 触发器 视图 存储过程 mysql常用函数

                                                                                                        ...

  8. MySQL 视图、触发器、函数、存储过程

    1. 视图 1.1 什么是视图 通俗来讲,视图就是一条 select 语句执行后返回的结果集.所有我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上. 1.2 视图的特性 视图是对若干张基 ...

  9. render函数和redirect函数的区别+反向解析

    render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象)   request对象:----->所有的请求 ...

随机推荐

  1. sql server2008 如何获取上月、上周、昨天、今天、本周、本月的查询周期(通过存储过程)

    我这边有一个需求要统计订单数据,需要统计订单的上传日期,统计的模块大概是 那么上月.上周.昨天.今天.本周.本月应该是怎样呢? 1.数据分析 因为今天是动态数据,我要查月份(上月.本月),应该是一个日 ...

  2. jsp jstl的使用

    1)下载jstl.jar和standard.jar文件,然后将其拷贝到tomcat的lib目录下. 具体的下载地址:http://mirrors.ccs.neu.edu/Apache/dist/jak ...

  3. string logo online customization

    url: http://www.asciiarts.net/ example :  hello

  4. bzoj1607

    题解: 帅选法 把相同的放在一起 代码: #include<bits/stdc++.h> using namespace std; ; int n,a[N],s[N],M,ss[N]; i ...

  5. 关系数据库ORMlite的用法;

    首先要在 http://ormlite.com/releases 页面下载两个jar 包: (1)core列表下的jar包: (2)android列表下的jar包. 将上面的两个jar包下载后放到An ...

  6. python关于时间的计算,time模块

    import time, datetime # time.time 返回当前时间的时间戳(1970纪元后经过的浮点秒数)(格林尼治时间). # 1分钟60秒,1小时3600秒,1天86400秒. pr ...

  7. Swift网络封装库Moya中文手册之Targets

    Targets 使用Moya,我们首先需要定义一个target - 这通常是继承 TargetType 协议的 枚举 变量.接下来,你的app只需要处理这些targets,也就是一些你希望调用API完 ...

  8. MyEclipse CI 2018.9.0正式发布(附下载)

    MyEclipse线上特惠,在线立享专属折扣!火热开启中>> 此MyEclipse版本增加了对较新的Wildfly服务器的支持,修复了与PDT等第三方工具的兼容性,并在IDE中包含了许多错 ...

  9. logback转义符与MDC

    关于MDC的使用,可以结合filter一块使用,将需要串联的上下文的关键信息,通过header进行传递,然后通过配置%X{userId}将信息打印出来. MDC.put("userId&qu ...

  10. 1.2.1 Elevator

    Elevator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem De ...