fastapi 一个登陆html模版,有账户,密码,提交按钮,点击提交后,网页将账户和密码post给fastapi程序,
时间: 2024-09-09 16:07:40 浏览: 48
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,使用 Python 3.6+ 类型提示。FastAPI 的特点包括自动文档、验证、序列化、测试和依赖注入等。
要实现一个登录页面,并在点击提交按钮后将账户和密码 POST 到 FastAPI 程序,你需要完成以下步骤:
1. 创建 FastAPI 应用。
2. 设计并实现登录逻辑的处理函数。
3. 创建 HTML 登录页面模板。
4. 在 FastAPI 应用中配置路由,用于接收 HTML 页面并处理表单提交。
下面是一个简单的例子:
步骤1: 创建 FastAPI 应用并定义登录逻辑。
```python
from fastapi import FastAPI, Request, Form
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="path_to_templates_directory")
```
步骤2: 实现登录逻辑的处理函数。
```python
@app.post("/login")
def login_for_access_token(form_data: dict = Form(...)):
username = form_data.get('username')
password = form_data.get('password')
# 这里可以添加验证用户名和密码的逻辑
# ...
return {"username": username, "message": "登录成功"}
```
步骤3: 创建 HTML 登录页面模板。
在模板目录下创建一个名为 `login.html` 的文件,内容可能如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<form action="/login" method="post">
<label for="username">账户:</label>
<input type="text" id="username" name="username" required>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<button type="submit">提交</button>
</form>
</body>
</html>
```
步骤4: 在 FastAPI 应用中配置路由。
```python
@app.get("/")
async def read_item(request: Request):
return templates.TemplateResponse("login.html", {"request": request})
```
这样,当你访问 FastAPI 应用的根路由时,它会渲染并显示登录页面。用户填写账户和密码后点击提交,表单数据将作为 POST 请求发送到 `/login` 路由,并由 `login_for_access_token` 函数处理。
阅读全文