Flask获取http请求数据
# 获取请求中的各项数据
from flask import Flask,request from urllib.parse import parse_qs from werkzeug.datastructures import ImmutableMultiDict app = Flask(__name__) @app.route("/args", methods=["POST"]) def args(): """获取查询字符串 """ # 获取原生查询字符串 query_string # print( request.query_string ) # print( parse_qs( request.query_string.decode() ) ) """POST 127.0.0.1:5000/args?username=xiaoming&pwd=123 b'username=xiaoming&pwd=123' {'username': ['xiaoming'], 'pwd': ['123']} """ # 获取解析后的查询字符串 # print(request.args) # print(request.args.get("username")) # print(request.args.get("lve")) # print(request.args.getlist("lve")) """POST /args?username=xiaoming&pwd=123&lve=shoping&lve=game ImmutableMultiDict([('username', 'xiaoming'), ('pwd', '123')]) # ImmutableMultiDict 是 一个有序字典,类似from collections import OrderedDict xiaoming shoping ['shoping', 'game'] """ print(request.args.to_dict(flat=True)) print(request.args.to_dict(flat=False)) print(request.args) """POST 127.0.0.1:5000/args?username=xiaoming&pwd=123&lve=shoping&lve=game {'username': 'xiaoming', 'pwd': '123', 'lve': 'shoping'} {'username': ['xiaoming'], 'pwd': ['123'], 'lve': ['shoping', 'game']} """ return "hello" @app.route(rule="/data",methods=["post","put","patch"]) def data(): """接受客户端发送过来的原生请求体数据,是request.json,request.form,request.files等无法接收的数据,全部会保留到这里""" print(request.data) # 接受表单提交的数据 print(request.form) # ImmutableMultiDict([('username', 'xiaoming'), ('password', '123456')]) print(request.form.get("username")) # 接收上传,files是一个列表 print( request.files ) # ImmutableMultiDict([('avatar', <FileStorage: 'hlw.jpg' ('image/jpeg')>)]) avatar = request.files.get("avatar") # ImmutableMultiDict([('avatar', <FileStorage: 'hlw.jpg' ('image/jpeg')>)]) print(avatar) # <FileStorage: 'hlw.jpg' ('image/jpeg')> # 接受ajax或其他客户端提交过来的json数据 print( request.json ) # {'username': 'xiaoming', 'password': '123456'} # 获取请求头信息 print() print() print( request.headers ) # 获取全部的而请求头信息 print( request.headers.get("Host") ) print( request.headers.get("Company")) # OldBoyEdu # 本次请求的url地址 print( request.url) # http://127.0.0.1:5000/data print( request.path ) # /data print( request.remote_addr ) # /127.0.0.1 return "hello" if __name__ == '__main__': app.run(host="0.0.0.0",port=5000,debug=True)

浙公网安备 33010602011771号