Flask实现POST请求"/>
Flask实现POST请求
1、被请求代码封装,得到一个封装路径,即所谓的接口
# 导入对应包
from flask import Flask, request
from flask_cors import CORS
import json# flask格式
app = Flask(__name__)
CORS(app, supports_credentials=True)
# 解决浏览器输出乱码问题
app.config['JSON_AS_ASCII'] = False
# 满足get和post请求
@app.route("/flask", methods=["GET","POST"])# 代码区域
def new_flask():# 接收请求数据★★★def form_or_json():if request.get_json(silent=True):return request.get_json(silent=True)else:if request.form:return request.formelse:return request.argsdata = form_or_json()query_zero =data['text']# 代码功能处理数据区域 (对 query_zero 进行处理)# 一定要返回值,且请求格式为 list 格式,不然请求端格式读取不出来# return (list)return ...if __name__ == '__main__' :app.run("0.0.0.0", "5001", debug=True)
2、当请求测试路径需要传入参数的时候,即去请求1中封装好的接口
# 传递数据的请求
import json # 用于json.dumps()转换文本格式
import requests # 请求包# 不同的请求路径
# REQUEST_URL = "http://127.0.0.1:5001/..." # 本地服务 ...为app.route路径
REQUEST_URL = ":5001/..." # 服务器服务 ...为app.route路径
HEADER = {'Content-Type':'application/json; charset=utf-8'}# 测试实现直接在终端输入文字,可取消注释自行实验一下,但需要将下一句赋值注释
# requestDict = {}
# requestDict["text"] = input("请输入文本:")# 将文本直接赋值
requestDict = {"text": "昨天杭州的天气真是一般,以至于都不能出门玩,下着很大的雨"}# 实现请求功能
rsp = requests.post(REQUEST_URL, json.dumps(requestDict), headers=HEADER)
rspJson = json.loads(rsp.text.encode())
print(rspJson)
…
说明:
# post请求格式
request.post(url, data, json, kwargs)
post请求传参分为两种
(1)表单(x-www-form-urlencoded)
(2)json(application/json)
data参数支持字典格式和字符串格式,字典格式用json.dumps()方法把data转换为合法的json格式字符串,此方法需要导入json模块
1、故json类型的post请求为
# json类型的post请求
import requests
url = "/"
data = '{"key": "value"}' # 字符串格式
resp = requests.post(url, data=data)
print(resp.text)
2、使用字典格式填写参数,传递时转换为json格式
# json.dumps()方法转换
import requests
import json
url = "/"
data = {"key": "value"}
resp = requests.post(url, data=json.dumps(data))
print(resp.text)
3、将字典格式的data数据赋给post方法的json参数
import requests
import json
url = "/"
data = {"key": "value"}
resp = requests.post(url, json=data)
print(resp.text)
更多推荐
Flask实现POST请求
发布评论