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.form
else:
return request.args
data = 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 = "http://10.1.0.247: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 = "https://editor.net/"
data = '{"key": "value"}' # 字符串格式
resp = requests.post(url, data=data)
print(resp.text)
2、使用字典格式填写参数,传递时转换为json格式
# json.dumps()方法转换
import requests
import json
url = "https://editor.net/"
data = {"key": "value"}
resp = requests.post(url, data=json.dumps(data))
print(resp.text)
3、将字典格式的data数据赋给post方法的json参数
import requests
import json
url = "https://editor.net/"
data = {"key": "value"}
resp = requests.post(url, json=data)
print(resp.text)
版权归原作者 三千院本院 所有, 如有侵权,请联系我们删除。