我有一个使用 Flask 运行的应用程序,我正在向正文发送一些数据。下面是我的代码。
@app.route('/<string:sr>/<string:file>', methods=['GET', 'POST'])
def home(sr, file):
if request.method == "POST":
# the post request sent contains id, dbuser, dbauth, ruser as form data.
rid = request.form.get('id')
duser = request.form.get('dbuser')
dpwd = request.form.get('dbauth')
ruser = request.form.get('ruser')
我无法在 fastapi 中找到如何获取此内容
from fastapi import FastAPI, Request, Form
import HeapParser
import urllib3
import os
from datetime import datetime
import uvicorn
@app.post('/')
async def root(request: Request):
print(ctime())
form = await request.form()
print(form)
使用这个 Curl 查询:
curl --location --request POST 'https://x.x.x.x/' \
--form 'rid="sdf"' \
--form 'dbuser="asdf"' \
--form 'dbauth="asdfasdf"' \
--form 'ruser="asldhjflas"'
答案 0 :(得分:0)
我能够使用以下代码完成这项工作:
@app.post('/')
def lower_case(sr: str = Form(...), file: str = Form(...), dbuser: str = Form(...), dbauth: str = Form(...), ruser: str = Form(...), rid: str = Form(...)):
print(ctime())
print(sr)
print(file)
print(rid)
答案 1 :(得分:0)
我认为最好为 post body 请求创建一个 pydantic 模型。这是保护发布请求的更有效的方法。
class FormBody(BaseModel):
rid: int
dbuser: str
dbauth: str
ruser: str
@app.post("/")
async def default_post(form: FormBody):
print(form.rid)
print(form.dbuser)
print(form.dbauth)
print(form.ruser)
return form