详解flask中如何获取不请求方式的参数,
详解flask中如何获取不请求方式的参数,
目录
- 前言
- 一、get请求下
- 1.1、路径中带有参数
- 1.1.1、postman示例
- 1.1.2、 flask代码实现
- 1.1.3、注意事项
- 1.2、在url后边带有参数
- 1.2.1、postman示例
- 1.2.2、 flask代码实现
- 二、post请求下
- 2.1、form-data格式
- 2.1.1、postman示例
- 2.1.2、flask代码实现
- 2.2、www-form-urlendoded格式
- 2.2.1、postman示例
- 2.2.2、flask代码实现
- 2.3、json传参格式
- 2.3.1、postman示例
- 2.3.2、flask代码实现
- 2.3.3、注意事项
- 2.4、headers传参格式
- 2.4.1、postman示例
- 2.4.2、flask代码实现
前言
基于现在主流前后端交互的api,那么就来看看如何使用flask实现参数接受的。这里是我常用的方式,关于更多使用方式,请点击这里去文档查看更多
一、get请求下
1.1、路径中带有参数
1.1.1、postman示例
1.1.2、 flask代码实现
@blog_base_blueprint.route('/path_posts/<int:resource_id>', methods=['GET']) def get_post_path(resource_id): resource_lists: List[models.Resource] = (models.Resource.query .filter(models.Resource.id == resource_id) .all()) return jsonify({ 'code': 0, 'msg': 'success', 'data': { "resource_list": [resource.to_format() for resource in resource_lists] } })
1.1.3、注意事项
在注册路由的时候一定要写上参数和参数的类型定义方法的时候一定写上参数名,这样才能直接使用
1.2、在url后边带有参数
当参数以 params 形式传递,也就是参数以?a=x&b=y 的形式显示在 url 中访问的形式
1.2.1、postman示例
1.2.2、 flask代码实现
通过request.args.get(‘key’)
和 request.values.get(‘key’)
来接收参数
@blog_base_blueprint.route('/posts', methods=['GET']) def get_posts(): current_app.logger.info('获取列表') resource_id = request.args.get('resource_id', 2) resource_lists: List[models.Resource] = (models.Resource.query .filter(models.Resource.id == resource_id) .all()) return jsonify({ 'code': 0, 'msg': 'success', 'data': { "resource_list": [resource.to_format() for resource in resource_lists] } })
二、post请求下
前后端API交互时,常见的还是post的请求方式,且常用的有form-data 或x-www-form-urlendoded形式,还有为json数据的body体
2.1、form-data格式
2.1.1、postman示例
2.1.2、flask代码实现
使用request.form
获取
@blog_base_blueprint.route('/add_post', methods=['POST', 'GET']) def create_or_update_resource(): title = request.form.get('title') json_data = request.form return jsonify({ 'json_data' : json_data, 'title' : title, })
2.2、www-form-urlendoded格式
2.2.1、postman示例
2.2.2、flask代码实现
使用request.form
接收参数
#测试www-form-urlendoded格式 @blog_base_blueprint.route('/test1', methods=['POST']) def test1(): title = request.form.get('title2') json_data = request.form id = request.values.get('id') return jsonify({ 'json_data' : json_data, 'title' : title, 'id' : id, })
2.3、json传参格式
2.3.1、postman示例
2.3.2、flask代码实现
使用request.get_json()
和 request.get_data()
实现,使用方法参考点击查看使用文档
#测试json格式 @blog_base_blueprint.route('/test1_json', methods=['POST']) def test1_json(): json_data1 = request.get_data(as_text=True) print(json_data1) json_data2 = request.get_json() title = request.json.get('title') return jsonify({ 'json_data1' : json_data1, 'json_data2' : json_data2, 'title' : title, })
2.3.3、注意事项
根据结果可以看到:
- get_data()方法,获取到的是未经处理的原始数据,如果数据格式是json的,则取得是json字符串,排序和请求参数一致
- get_json()方法,将请求参数做了处理,得到字典格式,因此排序会打乱,依据字典排序规则。
2.4、headers传参格式
很多时候,为了安全性,接口交互时会传递token,这时候是使用request.headers
来接收headers里的token的
2.4.1、postman示例
2.4.2、flask代码实现
使用request.headers
实现
@blog_base_blueprint.route('/add_post', methods=['POST', 'GET']) def create_or_update_resource(): token = request.headers.get('Authorization', '') title = request.form.get('title') # json_data = request.form return jsonify({ 'token' : token, })
以上就是详解flask中如何获取不请求方式的参数的详细内容,更多关于flask获取参数的资料请关注3672js教程其它相关文章!
您可能感兴趣的文章:- flask post获取前端请求参数的三种方式总结
- 使用flask如何获取post请求参数
- python flask框架中多种查询参数的获取方式
- flask后端request获取参数的几种方式整理
- Python使用Flask框架获取当前查询参数的方法
相关内容
- 将pythonflask项目打包成可以运行的软件的全过程(包含报
- 初识Flask,它以灵活、“微”框架
- Python逆向爬虫入门教程: 酷狗音乐加密参数signature逆向
- Python趣味入门11:函数作为参数以及匿名函数,本篇扩展
- Flask Web API构建实例:GET、POST文件上传、静态资源下载
- Python 中 key 参数的含义及用法,该函数返回此计数,用
- python中函数参数引用之传值/传址和copy/deepcopy,他们的
- 大白话说Python+Flask入门(六)Flask SQLAlchemy操作mysql数据
- 如何用python request同时上传文件和JSON参数,假设我们目
- 【让AI女友跟我表白】大白话说Python+Flask入门(四)F
评论关闭