Files
fastapi_tutor_yb/main.py
T

89 lines
2.7 KiB
Python
Raw Normal View History

2026-09-19 10:41:18 +08:00
from fastapi import FastAPI,Request
from fastapi.middleware.cors import CORSMiddleware
from starlette.staticfiles import StaticFiles
from router.features import form, method, file, validation, mimetype, path_query_variables, json,session_async
2026-09-19 10:41:18 +08:00
from router.dbopt import mysql,order_route,order_select_rep_query
2026-09-19 10:41:18 +08:00
from router.workhome import wk_0915,wk_0916,wk_0917
app = FastAPI(
swagger_ui_parameters={
"docExpansion": "none", # 完全折叠,所有 Tags 默认收起
"defaultModelsExpandDepth": -1 # 顺便把底部的 Schemas 模型也收起来
},
title="fastapi tutor - gk"
)
# request response model
app.include_router(mimetype.route)
app.include_router(method.route)
app.include_router(path_query_variables.route)
app.include_router(validation.route)
app.include_router(form.route)
app.include_router(file.route)
app.include_router(json.route)
app.include_router(session_async.route)
2026-09-19 10:41:18 +08:00
app.include_router(mysql.route)
2026-09-21 07:53:26 +08:00
app.include_router(order_route.route)
app.include_router(order_select_rep_query.route)
2026-09-19 10:41:18 +08:00
# homeworks...
app.include_router(wk_0915.route)
app.include_router(wk_0916.route)
app.include_router(wk_0917.route)
# for r in app.routes:
# print(r.path, r.methods, r.name)
app.mount(path="/static",app=StaticFiles(directory="/home/geeker/Pictures"),name="sn")
@app.get("/proxy")
def get(request: Request):
path = request.url_for('sn',path = 'head.png')
return path
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 允许所有来源,开发阶段用
# allow_origins=["null","http://localhost:8000"], # 允许所有来源,开发阶段用
allow_credentials=True, # 允许携带 Cookie
allow_methods=["*"], # 允许所有 HTTP 方法
allow_headers=["*"], # 允许所有请求头
)
from middle import middles
# app.middleware("http")(middles.black)
# app.middleware("http")(middles.time_)
2026-09-19 10:41:18 +08:00
# black_list = ['192.168.1.40','192.168.1.94'] # '127.0.0.1','192.168.1.26‘
# @app.middleware("http",)
# async def middleware(req:Request, next):
# if req.client.host in black_list:
# return Response("you are limited to access!")
# res = await next(req)
# # print('exite http',req.client.host)
# return res
#
# @app.middleware("https")
# async def middleware(req:Request, next):
# print('enter https',time.time())
# res = await next(req)
# print('exite https',time.time())
# return res
#
# @app.middleware("websocket")
# async def middleware(req:Request, next):
# print('enter websocket',req.client.host)
# res = await next(req)
# print('exite websocket',req.client.host)
# return res
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app",port=9090)