- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Flask response 对象详情由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在 Flask 中,响应使用 Response 对象表示,响应报文中的大部分内容由服务器处理,一般情况下,我们只负责返回主体内容即可。在之前的文章中,我们了解到 Flask 会先匹配请求 url 的路由,调用对应的视图函数,视图函数的返回值构成了响应报文的主体内容.
如果视图函数只返回一个元素的话,Flask 会创建 Response 对象,Response将该返回值作为主体内容,状态码默认为200,MIME 的类型为text/html,然后返回该 Response 对象.
其实视图函数可以返回最多由个元素组成的元组:响应主体、状态码、首部字段。我们也可以指定这三个元素的值.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@app
.route(
'/hello1'
)
def
hello1():
return
'Hello 1'
# 等价于返回 Response('Hello 1', status=200, mimetype='text/html')
@app
.route(
'/hello2'
)
def
hello2():
return
'Hello 2'
,
201
, {
'my-headers'
:
'tigeriaf'
}
|
上面hello2()视图函数返回一个元组,那么状态码 status 值会覆盖默认的200状态码,headers 可以是一个列表或者字典,作为额外的消息头.
其实我们也可以先构建 Response 响应对象,设置一些参数(比如状态码,响应头等)后,然后直接返回Response 响应对象.
1
2
3
4
5
6
7
8
9
|
@app
.route(
'/hello3'
)
def
hello3():
response
=
make_response(
'hello 3'
,
202
)
response.headers[
"my-headers"
]
=
"tigeriaf"
return
response
|
make_response()方法就是用来构建response对象的,第二个参数表示响应状态码,默认是200.
之前的案例都是返回的纯文本格式,但是在实际开发中一般都是返回 json 格式,那该怎么做呢?
我们都知道 Python 标准库中的json模块为程序提供了 JSON 格式支持,Flask 也在json包的基础上做了一些功能的封装,我们可以直接导入 Flask 的 json 包,将数据序列化为 json 类型返回,再把Response 对象的 MIME 类型修改为applcation/json即可.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
@app
.route(
'/hello4'
)
def
hello4():
data
=
{
"status"
:
0
,
"message"
:
"success"
,
"data"
:
{
"name"
:
"tigeriaf"
,
"age"
:
24
}
}
json_data
=
json.dumps(data)
response
=
make_response(json_data)
response.mimetype
=
"applcation/json"
return
response
|
除此之外,Flask 还提供了更方便的jsonify()方法,我们仅需要传入数据或者参数等,它会对我们传入的数据进行序列化,转换成 JSON 字符串作为响应的主体,然后生成一个响应对象,并且自动设置 MIME 类型, 。
如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
@app
.route(
'/hello4'
)
def
hello4():
data
=
{
"status"
:
0
,
"message"
:
"success"
,
"data"
:
{
"name"
:
"tigeriaf"
,
"age"
:
24
}
}
return
jsonify(data)
|
可见,jsonify()方法大大简化了我们的代码,而且jsonify()方法接收多种形式的参数,可以传入普通参数,也可以传入关键字参数,使用非常方便.
到此这篇关于 Flask response 对象详情的文章就介绍到这了,更多相关 Flask response 对象内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://juejin.cn/post/7030400306454200333 。
最后此篇关于Flask response 对象详情的文章就讲到这里了,如果你想了解更多关于Flask response 对象详情的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我知道这对极客来说似乎很基本。但我想说清楚。 当我想使用 Win32 DLL 时,通常我只调用像 LoadLibrary() 和 GetProcAdderss() 这样的 API。但是最近在用Dire
如何通过带有 FQL 的 javascript 获取用户国家/地区。 FB.API("/me") 不包含国家信息 [我认为],那么我怎样才能在一次查询中获取国家和用户详细信息? 谢谢。 最佳答案 用户
MVC @Html.ActionLink 编辑,如果您运行像 JAWS 这样的合规程序,只需说“编辑”视觉就可以了,但如果您作为视障人士进行查找。数以千计的“编辑”无法帮助您了解自己的位置。我需要合规
我正在尝试使用其 loopback-component-passport 来使 Facebook 登录与环回一起使用。插入。 我已经在providers.json中配置了应用程序详细信息,现在如果我访
收到此错误消息“GIT 配置无效。您需要获得存储库的访问权限才能发布任何更改。详细信息:给定租户的帐户名称不正确。”登录 Azure 数据工厂时。无法发布或保存任何更改。 最佳答案 检查对连接到 Az
我是一名优秀的程序员,十分优秀!