FastAPI 學習之路(六十一)使用mysql數據庫替換sqlite數據庫


   我們需要安裝對應的連接的依賴

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM