| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import asyncio
- import socket
- import time
- from fastapi import FastAPI, Request
- from fastapi.responses import HTMLResponse
- from fastapi.staticfiles import StaticFiles
- from fastapi.templating import Jinja2Templates
- import requests
- import uvicorn
- from fastapi.responses import FileResponse,JSONResponse
- from fastapi import FastAPI, Depends, HTTPException, Form
- import httpx
- import os
- from config import *
- from db.engine import create_all_table
- from fastapi.middleware.cors import CORSMiddleware
- from api.login import login_router
- from api.upload import upload_router
- from contextlib import asynccontextmanager
- from sqlmodel import SQLModel
- @asynccontextmanager
- async def lifespan(app: FastAPI):
- # 在应用启动前运行的代码
- create_all_table()
- loop = asyncio.get_event_loop()
- yield
- # 在应用关闭后运行的代码
- pass
- app = FastAPI(lifespan=lifespan)
- app.add_middleware(
- CORSMiddleware,
- allow_origins=["*"],
- allow_credentials=True,
- allow_methods=["*"],
- allow_headers=["*"],
- )
- app.include_router(login_router)
- app.include_router(upload_router)
-
- def get_session(request: Request):
- return request.session
-
- @app.get("/")
- async def read_root(request: Request):
- return {"message": "FastApi server is running.", "time":time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime())}
- def main():
- logger.debug(f"https://open-douyin-cf.magong.site 公网代理地址,cloudflare dns proxy ,由 caddy 转发到 8600 端口")
- logger.debug(f"https://open-douyin-wk.magong.site 公网代理地址,cloudflare workers 转发到 8600 端口")
- logger.debug(f"http://sv-v2.magong.site:{PORT} 仅支持 ipv6 ,直连、满速、无延迟。缺点是不支持 https 协议,因为不经过 Caddy 代理,直达 Fastapi 没有配置 https")
- logger.debug(f"https://open-douyin.magong.site 内网穿透隧道,cloudflare tunnel ,经常访问不了")
- logger.debug(f"http://localhost:{PORT} ⭐ 推荐。 vscode 会自动建立一条本地隧道,可以在本地浏览器直接打开")
- logger.debug(f"https://swl-8l9.pages.dev/ 访问前端网站")
- uvicorn.run(app, host=None, port=PORT, log_level="info")
- if __name__ == "__main__":
- main()
|