RedirectResponse не работает в FastAPI
Я хочу, чтобы по нажатию на кнопку "Login" меня перенаправляло на другую страницу, желательно на страницу пользователя, но меня вообще никуда не перенаправляет. Хотя в /docs все работает, html страница возвращается. В чем может быть проблема? Уже перепробовал разные варианты status_code.
main.py
@app.post('/login')
async def get_cust(email_login: str = Form(...), password_login: str = Form(...)):
email_statement = select(Customer).where(Customer.email == email_login)
email_result = session.exec(email_statement).first()
password_statement = select(Customer).where(Customer.password == password_login)
password_result = session.exec(password_statement).first()
if email_result != None and email_result.id == password_result.id:
return RedirectResponse(url='/', status_code=303)
login.html
<form style="width:300px; margin-top:100px;" class="mx-1 mx-md-4">
<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-envelope fa-lg me-3 fa-fw"></i>
<div data-mdb-input-init class="form-outline flex-fill mb-0">
<input type="email" id="email_login" name="email_login" class="form-control" />
<label class="form-label" for="form3Example3c">Your Email</label>
</div>
</div>
<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-lock fa-lg me-3 fa-fw"></i>
<div data-mdb-input-init class="form-outline flex-fill mb-0">
<input type="password" id="password_login" name="password_login" class="form-control" />
<label class="form-label" for="form3Example4c">Password</label>
</div>
</div>
<div style='justify-content:space-around;' class="d-flex mx-4 mb-3 mb-lg-4">
<input type='submit' data-mdb-button-init data-mdb-ripple-init class="btn btn-primary btn-lg"
value="Login">
</div>
</form>
Ответы (1 шт):
Автор решения: Tomori
→ Ссылка
Разобрался
Нужно было в форме написать method="post"
<form style="width:300px; margin-top:100px;" class="mx-1 mx-md-4" method="post">
<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-envelope fa-lg me-3 fa-fw"></i>
<div data-mdb-input-init class="form-outline flex-fill mb-0">
<input type="email" id="email_login" name="email_login" class="form-control" />
<label class="form-label" for="form3Example3c">Your Email</label>
</div>
</div>
<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-lock fa-lg me-3 fa-fw"></i>
<div data-mdb-input-init class="form-outline flex-fill mb-0">
<input type="password" id="password_login" name="password_login" class="form-control" />
<label class="form-label" for="form3Example4c">Password</label>
</div>
</div>
<div style='justify-content:space-around;' class="d-flex mx-4 mb-3 mb-lg-4">
<input type='submit' data-mdb-button-init data-mdb-ripple-init class="btn btn-primary btn-lg"
value="Login">
</div>
</form>