如何将 post in json 作为后端?
How to post in json as backend?
我的问题是如何使用 json 作为后端 post 输出?
只需要 post 翻译文本
我的后端编码
from fastapi import FastAPI, Form, Depends, Request
from fastapi.templating import Jinja2Templates
from googletrans import Translator
import uvicorn
#connect to translator
translator = Translator(service_urls=['translate.googleapis.com'])
app = FastAPI(debug=True)
templates = Jinja2Templates(directory="template")
@app.get("/")
async def home(request: Request):
return ('index.html',{'request': request})
@app.post("/")
async def trans(request: Request):
text = request.get('Input_text')
lang = request.get('lang_select')
# detect language text
#dt = translator.detect(text)
# detect input language
#dt2 = dt.lang
# translate the text
translated = translator.translate(text,lang)
out_text = translated.text
pronouce = out_text.pronunciation
#transData={'request': request ,'text_translate': out_text,'text_pronouce':pronouce}
return ({'request': request ,'text_translate': out_text,'text_pronouce':pronouce})
if __name__=="__main__":
uvicorn.run(app,host="127.0.0.1",port=8000)
和json格式化为post输出
{
"text_translate": "out_text"
"text_pronouce":"pronouce"
}
显然,我的 post-return 使此代码无法正常运行。
任何帮助或解决方案表示赞赏...现在坚持了几天
尝试使用 jsonable_encoder
对响应进行编码,然后使用 JSONResponse
对数据进行 return 编码
代码:
from fastapi import FastAPI, Form, Depends, Request
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
from fastapi.templating import Jinja2Templates
from googletrans import Translator
import uvicorn
#connect to translator
translator = Translator(service_urls=['translate.googleapis.com'])
app = FastAPI(debug=True)
templates = Jinja2Templates(directory="template")
@app.get("/")
async def home(request: Request):
return ('index.html',{'request': request})
@app.post("/")
async def trans(request: Request):
text = request.get('Input_text')
lang = request.get('lang_select')
# detect language text
#dt = translator.detect(text)
# detect input language
#dt2 = dt.lang
# translate the text
translated = translator.translate(text,lang)
out_text = translated.text
pronouce = out_text.pronunciation
#transData={'request': request ,'text_translate': out_text,'text_pronouce':pronouce}
data = jsonable_encoder({'text_translate': out_text,'text_pronouce':pronouce})
return JSONResponse(content=data)
if __name__=="__main__":
uvicorn.run(app,host="127.0.0.1",port=8000)
我的问题是如何使用 json 作为后端 post 输出? 只需要 post 翻译文本 我的后端编码
from fastapi import FastAPI, Form, Depends, Request
from fastapi.templating import Jinja2Templates
from googletrans import Translator
import uvicorn
#connect to translator
translator = Translator(service_urls=['translate.googleapis.com'])
app = FastAPI(debug=True)
templates = Jinja2Templates(directory="template")
@app.get("/")
async def home(request: Request):
return ('index.html',{'request': request})
@app.post("/")
async def trans(request: Request):
text = request.get('Input_text')
lang = request.get('lang_select')
# detect language text
#dt = translator.detect(text)
# detect input language
#dt2 = dt.lang
# translate the text
translated = translator.translate(text,lang)
out_text = translated.text
pronouce = out_text.pronunciation
#transData={'request': request ,'text_translate': out_text,'text_pronouce':pronouce}
return ({'request': request ,'text_translate': out_text,'text_pronouce':pronouce})
if __name__=="__main__":
uvicorn.run(app,host="127.0.0.1",port=8000)
和json格式化为post输出
{
"text_translate": "out_text"
"text_pronouce":"pronouce"
}
显然,我的 post-return 使此代码无法正常运行。 任何帮助或解决方案表示赞赏...现在坚持了几天
尝试使用 jsonable_encoder
对响应进行编码,然后使用 JSONResponse
代码:
from fastapi import FastAPI, Form, Depends, Request
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
from fastapi.templating import Jinja2Templates
from googletrans import Translator
import uvicorn
#connect to translator
translator = Translator(service_urls=['translate.googleapis.com'])
app = FastAPI(debug=True)
templates = Jinja2Templates(directory="template")
@app.get("/")
async def home(request: Request):
return ('index.html',{'request': request})
@app.post("/")
async def trans(request: Request):
text = request.get('Input_text')
lang = request.get('lang_select')
# detect language text
#dt = translator.detect(text)
# detect input language
#dt2 = dt.lang
# translate the text
translated = translator.translate(text,lang)
out_text = translated.text
pronouce = out_text.pronunciation
#transData={'request': request ,'text_translate': out_text,'text_pronouce':pronouce}
data = jsonable_encoder({'text_translate': out_text,'text_pronouce':pronouce})
return JSONResponse(content=data)
if __name__=="__main__":
uvicorn.run(app,host="127.0.0.1",port=8000)