Как отправить RedirectResponse с POST на маршрут GET в FastAPI?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как отправить RedirectResponse с POST на маршрут GET в FastAPI?

Сообщение Anonymous »

Я хочу отправить данные из app.post() в app.get() с помощью RedirectResponse.

Код: Выделить всё

@app.get('/', response_class=HTMLResponse, name='homepage')
async def get_main_data(request: Request,
msg: Optional[str] = None,
result: Optional[str] = None):
if msg:
response = templates.TemplateResponse('home.html', {'request': request, 'msg': msg})
elif result:
response = templates.TemplateResponse('home.html', {'request': request, 'result': result})
else:
response = templates.TemplateResponse('home.html', {'request': request})
return response

Код: Выделить всё

@app.post('/', response_model=FormData, name='homepage_post')
async def post_main_data(request: Request,
file: FormData = Depends(FormData.as_form)):
if condition:
......
......

return RedirectResponse(request.url_for('homepage', **{'result': str(trans)}), status_code=status.HTTP_302_FOUND)

return RedirectResponse(request.url_for('homepage', **{'msg': str(err)}), status_code=status.HTTP_302_FOUND)
  • Как отправить результат или сообщение через RedirectResponse, url_for() в приложение. get()?
  • Есть ли способ скрыть данные в URL-адресе как параметр пути или параметр запроса? Как мне этого добиться?
Я получаю сообщение об ошибке starlette.routing.NoMatchFound: маршрут не существует для имени «домашняя страница» и параметров «результат». при попытке этого способа.
Обновление:
Я попробовал следующее:

Код: Выделить всё

return RedirectResponse(app.url_path_for(name='homepage')
+ '?result=' + str(trans),
status_code=status.HTTP_303_SEE_OTHER)
Приведенное выше работает, но он работает, отправляя парамет как запрос param, то есть URL выглядит так, как это Localhost: 8000/? Result = Hello . Есть ли способ сделать то же самое, но не показывая его в URL?


Подробнее здесь: https://stackoverflow.com/questions/730 ... in-fastapi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»