python flask 处理 url param和header和form和json

基于HTTP协议客户端和服务端传递信息通常会把具体的内容放在四个地方。

  1. 放在url的请求参数中,get和post都可以,不过大部分情况下以get居多。

  2. POST 的form中,在服务端渲染表单盛行(struts,flask_wtf)的年代,登陆,注册等基本都是把用户填写的信息放在form中。

  3. post中的json格式,现在最佳的实践方案就是前后端通过restful的API,传递json数据来进行通信。

  4. 还有很多时候是需要获取http的head信息,比如一些auth信息或者referer,useragent的信息等。

获取url和form以及header内容

Postman 发送的http测试请求

POST /test?x=valueX HTTP/1.1
Host: 127.0.0.1:5000
Content-Type: application/x-www-form-urlencoded
z: valueZ
Cache-Control: no-cache
Postman-Token: bb060ed5-783e-6470-05ee-f05a71df972c

y=valueY

处理请求:

from flask import request

@app.route('/test', methods=['GET', 'POST'])
def test():
    # 获取 url 参数内容
    x = request.args.get("x")
    
    # 获取 form 表单内容
    y = request.form.get("y")
    
    # 获取 http 头部内容
    z = request.headers.get("z")
    
    print("x from url param: ", x)
    print("y from form param: ", y)
    print("z from headers: ", z)
    return "test"

获取json内容

发起的请求

POST /test HTTP/1.1
Host: 127.0.0.1:5000
Content-Type: application/json
z: valueZ
Cache-Control: no-cache
Postman-Token: 2b3e8991-a48e-1653-c6e3-1b07d7411a29

{"url": "http://dig404.com"}

处理json请求

@app.route('/test', methods=['GET', 'POST'])
def test():
    
    # 获取json格式的body,返回直接就是dict类型
    content = request.get_json(silent=True)
    content.get('url', None)
    print(content)
    return ""

如果喜欢,您就给个赞呗。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 彼岸花是没有彼岸的守候,凄楚的女子假装幸福的守侯 窗外雨落停桥边 蓦然回首湿襟衫 情断三生于江畔 何人续写苦情缘 ...
    pz五月阅读 3,003评论 0 0
  • 木子李v三石阅读 1,778评论 0 0
  • 【0524今日话题】你了解你的父母吗?比如:他们最想去的地方,最爱吃的东西,最大的遗憾以及他们的专长等等。 ———...
    朱朱的餐具阅读 1,441评论 1 3
  • 这些年我遇到的邻居 2017.3.30 昨天刚刚到家,邻居就敲门,开门一看,给我送来一盘水煮虾。心里好感动。感谢老...
    艾米姜阅读 3,169评论 0 0

友情链接更多精彩内容