我們需要安裝對應的連接的依賴
pip install pymysql
然后在配置testDatabase.py
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:@127.0.0.1:3306/test" engine = create_engine( SQLALCHEMY_DATABASE_URL, encoding='utf8', echo=True ) TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base()
修改成本地的連接mysql,連接的test的資料庫,我們需要在本地去創建test的資料庫,那么我們創建完畢后,去啟動,發現報錯

在自動創建資料庫的時候,使用mysql資料庫,String型別對應的是VARCHAR型別,需要指定長度,否則會報下面錯誤,而在sqlite不會出現,
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String from sqlalchemy.orm import relationship from config import EVENT if EVENT == "test": from models.testDatabase import Base, engine else: from models.database import Base, engine class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) email = Column(String(length=252), unique=True, index=True) hashed_password = Column(String(length=252)) is_active = Column(Boolean, default=True) items = relationship("Item", back_populates="owner") class Item(Base): __tablename__ = "items" id = Column(Integer, primary_key=True, index=True) title = Column(String(length=252), index=True) description = Column(String(length=252), index=True) owner_id = Column(Integer, ForeignKey("users.id")) owner = relationship("User", back_populates="items")
然后我們在啟動,

日志里面正常去創建了對應的資料庫,

在資料庫的對應的資料表也同步創建成功,這樣我們就完成了,測驗服的替換,我們可以用介面工具postman去除錯下,

可以看到創建成功,

資料庫中,也正常了創建了對應的資料,我們在測驗服的更改資料庫完成,同比,我們的其他環境也可以這么修改即可,
到這里,我們的基礎分享就結束了,后續給大家分享對應的實戰
代碼存盤
https://gitee.com/liwanlei/fastapistuday
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340626.html
標籤:其他
