FastAPI-MySQL-Cookie代码实现
连接数据库
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from urllib.parse import quote_plus
password = '123456'
encoded_password = quote_plus(password)
SQLALCHEMY_DATABASE_URL = f'mysql+pymysql://root:{encoded_password}@127.0.0.1:3306/cookie_logging'
engine = create_engine(
SQLALCHEMY_DATABASE_URL, echo=True
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
建模
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
from .database import Base
class Users(Base):
__tablename__ = 'user'
username = Column(String)
id = Column(Integer, primary_key=True)
password = Column(String)
接口
from typing import Annotated
import uvicorn
from fastapi import Cookie, FastAPI,Depends
from database import get_db
from fastapi.encoders import jsonable_encoder
from sqlalchemy.orm import Session
from logging_test import alchemy_models
app = FastAPI()
@app.get("/logging/")
async def read_items(id: Annotated[int | None, Cookie()], db: Session = Depends(get_db),):
response = db.query(alchemy_models.Users).filter(alchemy_models.Users.id == id).first()
if response:
return jsonable_encoder(response)
else:
return jsonable_encoder({'error': f'{id} not found'})
tips
swagger文档发送cookie会有异常,可以使用postman进行测试
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步