详解flask中如何获取不请求方式的参数

2024-04-18 0 617
目录
  • 前言
  • 一、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示例

详解flask中如何获取不请求方式的参数

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]
}
})

详解flask中如何获取不请求方式的参数

1.1.3、注意事项

在注册路由的时候一定要写上参数和参数的类型定义方法的时候一定写上参数名,这样才能直接使用

1.2、在url后边带有参数

当参数以 params 形式传递,也就是参数以?a=x&b=y 的形式显示在 url 中访问的形式

1.2.1、postman示例

详解flask中如何获取不请求方式的参数

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示例

详解flask中如何获取不请求方式的参数

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示例

详解flask中如何获取不请求方式的参数

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示例

详解flask中如何获取不请求方式的参数

2.3.2、flask代码实现

使用request.get_json()和 request.get_data()实现,使用方法参考点击查看使用文档

详解flask中如何获取不请求方式的参数

详解flask中如何获取不请求方式的参数

#测试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示例

详解flask中如何获取不请求方式的参数

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获取参数的资料请关注悠久资源网其它相关文章!

您可能感兴趣的文章:

  • flaskpost获取前端请求参数的三种方式总结
  • 使用flask如何获取post请求参数
  • python flask框架中多种查询参数的获取方式
  • flask后端request获取参数的几种方式整理
  • Python使用Flask框架获取当前查询参数的方法

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Python 详解flask中如何获取不请求方式的参数 https://www.u-9.cn/jiaoben/python/187011.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务