Flask get &post请求

这篇具有很好参考价值的文章主要介绍了Flask get &post请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境描述

python:3.8.0
flask: 2.3.2
postman:9.12.2

Flask delete&put请求传送门:FLASK DELETE&PUT

二、初始化flask 程序

from flask import Flask, request

app = Flask(__name__)


@app.route('/')
def hello_world():  # put application's code here
    return 'Hello World!'
    

if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)

  • 0.0.0.0: 由于我使用的是 虚拟机,所以指定同一局域网中可反问
  • debug:开启debug模式,修改程序后会自动部署,无需重启程序

三、get请求

3.1 代码

from flask import Flask, request

app = Flask(__name__)


@app.route('/')
def hello_world():  # put application's code here
    return 'Hello World!'


# get 获取请求参数
@app.route('/user', methods=['GET'])
def get_user_info():
    # user_name = request.args.get('user_name')
    user_name = request.values.get("user_name")
    # 将数据再次打包为 JSON 并传回
    res = {"user_name": user_name}
    return res


if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)

3.2 分析

  1. 请求举例:http://ip:5000/user?user_name=neil

  2. 限定请求只响应路径为 /user时的get请求

    @app.route('/user', methods=['GET'])
    def method():
      ...
    
    • 使用/user限制请求响应的路径
    • 使用methods进行请求方式限定
  3. 获取参数的方式

    # 获取get ?后参数的方法
    request.args.get('user_name')
    request.values.get('user_name')
    

3.3 验证

  1. postman 请求参数
    Flask get &post请求,开发语言,python,flask

  2. postman header 如下(使用默认)
    Flask get &post请求,开发语言,python,flask

3.4 请求结果

Flask get &post请求,开发语言,python,flask

四、post请求

4.1 代码

from flask import Flask, request

app = Flask(__name__)


@app.route('/')
def hello_world():  # put application's code here
    return 'Hello World!'


# post 获取请求参数
@app.route('/user', methods=['POST'])
def post_user_info():
    # postman 使用默认请求头application/json
    user_info = request.get_json()
    res = {"user_name": user_info.get("user_name")}

    # postman 使用application/x-www-form-urlencoded请求 
    # 注:此测试得也可解析multipart/form-data请求
    # user_name = request.values.get('user_name')
    # res = {"user_name": user_name}

    # postman 使用multipart/form-data请求
    # 注:此测试得也可解析application/x-www-form-urlencoded请求
    # user_name = request.form.get('user_name')
    # user_name = request.form['user_name']
    # res = {"user_name": user_name}
    
    # postman 使用上述三种都可以收到内容,但是返回值为bytes类型
    # user_info = request.get_data()
    # res = {"user_name": user_info.decode("utf-8")}

    return res

if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)

4.2 分析

  1. 请求举例:http://ip:5000/user

  2. 限定请求只响应路径为 /user时的post请求

    @app.route('/user', methods=['POST'])
    def method():
      ...
    
    • 使用/user限制请求响应的路径
    • 使用methods进行请求方式限定
  3. 获取参数的方式有四种

    1. request.get_json():可解析 请求头application/json的参数
    2. request.values.get('user_name'): 可解析请求头为application/x-www-form-urlencoded & multipart/form-data的参数
    3. request.form.get('user_name')&request.form['user_name']: 可解析请求头为multipart/form-data &application/x-www-form-urlencoded的参数
    4. request.get\_data():怎样的请求都可以拿到参数,但是默认初始解析返回值是bytes的对象

4.3 验证

4.3.1 postman 请求头application/json参数

  1. 设置参数
    Flask get &post请求,开发语言,python,flask

  2. header内容
    Flask get &post请求,开发语言,python,flask

  3. 请求结果
    Flask get &post请求,开发语言,python,flask

4.3.2 postman 请求头application/x-www-form-urlencoded参数

  1. 设置参数
    Flask get &post请求,开发语言,python,flask

  2. header内容
    Flask get &post请求,开发语言,python,flask

  3. 请求结果
    Flask get &post请求,开发语言,python,flask

4.3.3 postman 请求头multipart/form-data参数

  1. 设置参数
    Flask get &post请求,开发语言,python,flask
  2. header内容
    Flask get &post请求,开发语言,python,flask
  3. 请求结果
    Flask get &post请求,开发语言,python,flask

4.3.4 request.get_data()解析参数

  1. 请求multipart/form-data请求头内容
    Flask get &post请求,开发语言,python,flask
  2. 请求 application/x-www-form-urlencoded请求头内容
    Flask get &post请求,开发语言,python,flask
  3. 请求application/json请求头内容
    Flask get &post请求,开发语言,python,flask

五、总结

  1. get请求

    GET把参数包含在URL中,访问时会在地址栏直接显示参数不安全,且参数大小比较小

  2. post请求

    参数通过request body传递,请求头的情况下需要不同的解析方式进行相关处理文章来源地址https://www.toymoban.com/news/detail-608633.html

六、遗留问题

  1. 为什么application/x-www-form-urlencoded & multipart/form-data 请求头可以相互解析相关参数?
    • x-www-form-urlencoded,表单默认的 Content-type 类型,支持 ASCII-text 文本内容
    • multipart/form-data,允许提交表单包含: files,non-ASCII-text,Binary 类型数据
    • 参考:https://learning.postman.com/docs/sending-requests/requests/

到了这里,关于Flask get &post请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于flask的web应用开发——接受post请求

    操作系统:Windows10 家庭版 开发环境:Pycahrm Comunity 2022.3 Python解释器版本:Python3.8 第三方库:flask POST是HTTP协议定义的一种请求方法,用于向指定资源提交要被处理的数据。与之对应的是GET请求方法,GET方法用于请求获取资源,而POST方法用于提交更新资源或者提交一些需要处

    2024年02月14日
    浏览(37)
  • flask中GET和POST的区别

    GET和POST是HTTP协议中两种常用的请求方法,它们在如何向服务器发送数据以及数据传输方式上有所不同。下面是GET和POST的主要区别: 一、数据传输位置 : GET :将数据通过URL的查询字符串部分(即URL的参数)传递给服务器。数据以键值对的形式出现在URL中,使用?符号连接U

    2024年02月11日
    浏览(35)
  • Flask实现POST请求

    1、被请求代码封装,得到一个封装路径,即所谓的接口 2、当请求测试路径需要传入参数的时候,即去请求1中封装好的接口 … 说明: post请求传参分为两种 (1)表单(x-www-form-urlencoded) (2)json(application/json) data参数支持字典格式和字符串格式,字典格式用json.dumps()方法

    2024年02月09日
    浏览(33)
  • flask get请求

    在Flask中处理GET请求非常直接。默认情况下,路由就是响应GET请求。如果您想要明确指定一个路由只用于GET请求,可以在 route() 装饰器中加入 methods 参数。 以下是如何在您的Flask应用中添加一个处理GET请求的路由的示例: 在这段代码中,我们添加了一个新的路由 /greet ,这个

    2024年02月21日
    浏览(28)
  • 【毕设必备】手把手带你用Python搭建一个简单的后端服务- API的创建,前后端交互的数据传递,GET,POST,JSON,FLASK

    Python是一种 流行 的高级编程语言,具有易于学习和使用的特性,被广泛应用于各种领域。 简单易学 :Python的语法清晰简洁,易于理解和学习。与其他编程语言相比,Python的语法设计非常直观,使得编程新手也能快速上手。 强大的标准库和丰富的第三方库 :Python拥有一个庞

    2024年02月04日
    浏览(143)
  • Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽

      以下是一个通过 Flask 构建 Web API 服务的详细示例,包含了各类请求(GET、POST、文件上传、静态资源下载)、每个方法独立配置路由、参数接收和解析、请求日志记录以及异常日志记录。请确保你已经安装了 Flask,你可以使用以下命令进行安装: 接下来是一个包含详细注释

    2024年02月04日
    浏览(52)
  • 后端flask,前端vue,实现post请求chatgpt流式响应

    vue2写法 vue3 setup写法

    2024年01月21日
    浏览(41)
  • 【Python爬虫开发基础⑪】requests库概述(GET和POST请求)

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡 往期推荐 : ⭐️前面比较重要的 基础内容 : 【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP) 【Python爬虫开发基础⑦】urllib库的基本使用

    2024年02月12日
    浏览(42)
  • python flask server 接收post数据注意

    前面写了两篇文章,结果错误不少,经过修正,改了很多错误 加上以下两条 以下让整个全景跨域 加上secret_key 防止session 报错 其中需要data.decode 去解码utf-8 编码,去掉前面的 b 这个多余的字节。 去掉flask develop的警告 这样要把gevent装上 pip install gevent 发送端使用以前的代码

    2024年02月16日
    浏览(36)
  • python实现Flask GET Demo

    python代码 get方法可以不需要任何前端代码,直接运行以上Python代码,控制端会有以下输出 http://127.0.0.1:5000为我们的URL,因为我们做了/data的路由,所以在浏览器地址栏输入http://127.0.0.1:5000/data?data=2013.9 页面可以返回python文件中设定的json格式数据:

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包