python flask 设置 header 响应体、响应头、状态码
需求场景
在api设计中,基于restful的设计原则,一个http的响应应该包含执行的响应信息以及状态码。
例如:一个错误信息的响应信息应该包含内容以及返回对应的设计错误码。
在flask中如何制定这个的响应信息呢?下面来看看。
使用return直接设置特定的响应信息
return 响应体, 状态码, 响应头
等价于
return (响应体, 状态码, 响应头)
return 可以返回一个元组,这样的元组必须是 (response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。
下面写个示例视图函数如下:
from flask import Flask, request, abort# 实例化app
app = Flask(import_name=__name__)@app.route('/login', methods=["GET","POST"])
def login():# return 响应体, 状态码, 响应头return "login fail", 404, [("token", "123456"), ("City", "shenzhen")] # 使用元组的方式设置headerif __name__ == '__main__':app.run(debug=True)
使用浏览器请求如下:
return "login fail", 404, [("token", "123456"), ("City", "shenzhen")]
可以看到上面设置响应消息成功返回。
- status 值可以设置任意的状态代码,headers可以是字典
from flask import Flask, request, abort# 实例化app
app = Flask(import_name=__name__)@app.route('/login', methods=["GET","POST"])
def login():# return 响应体, 状态码, 响应头# return "login fail", 404, [("token", "123456"), ("City", "shenzhen")] # 使用元组的方式设置headerreturn "login fail", "666 hello wolrd", {"token":"123456", "City": "shenzhen"} # 使用元组的方式设置headerif __name__ == '__main__':app.run(debug=True)
使用浏览器请求如下:
- 响应消息元组 (response, status, headers) 至少包含一个元素
from flask import Flask, request, abort# 实例化app
app = Flask(import_name=__name__)@app.route('/login', methods=["GET","POST"])
def login():# return 响应体, 状态码, 响应头# return "login fail", 404, [("token", "123456"), ("City", "shenzhen")] # 使用元组的方式设置header# return "login fail", "666 hello wolrd", {"token":"123456", "City": "shenzhen"} # 使用元组的方式设置headerreturn "login fail", "999 hello wolrd"if __name__ == '__main__':app.run(debug=True)
使用浏览器请求如下:
可以看到只要至少有一项作为响应消息即可。
除了return的方式返回特性的响应消息,还可以使用另一种方式。
使用make_response设置特定的响应信息
导入make_response
from flask import make_response
示例代码如下:
from flask import Flask, request, abort, make_response# 实例化app
app = Flask(import_name=__name__)@app.route('/login', methods=["GET","POST"])
def login():res = make_response("login fail") # 设置响应体res.status = '999 login fail' # 设置状态码res.headers['token'] = "123456" # 设置响应头res.headers['City'] = "shenzhen" # 设置响应头return resif __name__ == '__main__':app.run(debug=True)
在浏览器执行如下:
python flask 设置 header 响应体、响应头、状态码相关推荐
- Python flask设置favicon.ico图标
Python flask设置favicon.ico图标,如图: import os from flask import Flask from flask import send_from_direct ...
- python flask 设置个性化的响应体 响应头 状态码
目录 需求场景 使用return直接设置特定的响应信息 使用make_response设置特定的响应信息 需求场景 在api设计中,基于restful的设计原则,一个http的响应应该包含执行的响应信 ...
- HTTP 响应的格式及状态码
HTTP响应 服务器收到了客户端发来的HTTP请求后,根据HTTP请求中的动作要求,服务端做出具体的动作,将结果回应给客户端,称为HTTP响应. 响应数据格式 HTTP响应由三部分组成:状态行.响应头 ...
- 用python+flask自己制作api(教程附源码)
1.背景 ok,可能很多朋友跟我一样经常使用各种api,比如facebook的,github的,甚至是微信的api.所以很多人也想制作自己的api.网上关于这方面的教程实在是很少,今天我就顺手做了一个 ...
- http请求头状态码
1.返回"HTTP Status 415"状态码[表示不支持的媒体类型(Media Type),也就是MIME类型] 如果请求头是Content-type=application/ ...
- Python Flask Web 第二课 —— 请求-响应循环
1. 请求与请求上下文 Flask 从客户端收到请求(请求对象,比如请求某 URL)时,路由给视图函数处理,视图函数需要访问这些请求对象(它封装了客户端发送的 HTTP 请求),这样才能处理请求. 要 ...
- win10+python+Flask设置SSL证书,使用https服务
本人也是看了很多博客,才学会的. Flask使用SSL搭建HTTPS服务 直接使用ssl: from flask import *app = Flask(__name__)@app.route('/' ...
- 【APP接口开发】常用HTTP响应头状态码详解
1.200 OK,客户端请求城成功 2.400 Bad Request ,客服端请求语法错误,服务器无法理解和处理 3.401 unauthorized,请求未通过认证 4.403 permissio ...
- PDA服务器显示响应为空,jmeter 状态码为200,但是响应数据为何为空
@Wei_s: 意思就是说服务器就只写了200,没写body. 比如你想要的是A(http response包): HTTP/1.1 200 OK Cache-Control: private Con ...
最新文章
- 改变程序员的一本书 | 每日趣闻
- 怎么查看ftp服务器的版本信息,查看ftp服务器版本
- jenkins pipeline发送邮件报错解决办法: failed to connect, no password specified?
- 多个maven project项目之间进行引用
- 普林斯顿公开课 算法2-2:选择排序
- Java程序中fix time_Java Position.setFixTime方法代码示例
- node.js + express 初体验【hello world】
- 一些简单的前端练习demo
- mvn使用assembly打包所有的moudle为一个tgz文件
- 吴恩达深度学习之四《卷积神经网络》学习笔记
- [Alpha阶段]第二次Scrum Meeting
- 如何记忆 Spring Bean 的生命周期
- 机器学习可以应用在哪些场景
- Linux基本指令(1)
- c语言做游戏音效,游戏背后辛苦付出的劳动者—游戏音效师
- 从隔壁老王开始的信号处理入门
- UDS汽车诊断入门01 - 简介
- 备忘录莫名其妙的没了_华为手机总是多出莫名其妙的照片?一键找到源头,教你彻底删除...
- 技术大佬:还在用Excel,傻了吧!网友:每天朝九晚六飞起来!
- 【ML】EM(期望最大)算法
热门文章
- android 8.0 intent,Android 8.0通知栏适配问题
- 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
- 利用gcc的-finstrument-functions获取函数轨迹跟踪
- Fusion360操作记录
- 获取节点及元素的代码
- extern “C”的作用详解
- Kotlin学习与实践 (十)Kotlin的可空性
- oss https 代理
- Adobe将于2020年末停止对Flash的支持
- [转]CSS3 transform顺序问题