feat: 新增技能扩展N7一章相关示例源码

This commit is contained in:
100gle
2022-12-01 18:43:56 +08:00
parent 527d3b655a
commit 72162b7166
14 changed files with 663 additions and 0 deletions

42
code/newsletter/N7/web.py Normal file
View File

@@ -0,0 +1,42 @@
import pathlib
import uuid
import uvicorn
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse, RedirectResponse
from fastapi.templating import Jinja2Templates
app = FastAPI()
TEMPLATE = pathlib.Path(__file__).parent.joinpath("templates/web")
template = Jinja2Templates(directory=TEMPLATE)
users = [
dict(id=uuid.uuid4(), name="Steve Jobs"),
dict(id=uuid.uuid4(), name="Bill Gates"),
dict(id=uuid.uuid4(), name="Sundar Pichai"),
dict(id=uuid.uuid4(), name="Jeff Bezos"),
dict(id=uuid.uuid4(), name="100gle"),
]
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
ctx = dict(request=request)
return template.TemplateResponse("index.html", context=ctx)
@app.get("/users/", response_class=HTMLResponse)
async def get_users(request: Request):
ctx = dict(request=request, users=users)
return template.TemplateResponse("user.html", context=ctx)
@app.get("/users/{name}", response_class=HTMLResponse)
async def add_user(name: str):
users.append(dict(id=uuid.uuid4(), name=name))
return RedirectResponse("/users")
if __name__ == '__main__':
uvicorn.run(app)