zoukankan      html  css  js  c++  java
  • 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

    文章首发在公众号,欢迎关注。

  • 相关阅读:
    [更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!
    有幸参加“集团2016年工业事业部发展规划会议”,向网友汇报!!!
    Centos7之ssh连接keepalive
    AES加密算法
    MySQL之only_full_group_by
    AES加解密文件流
    Mongo基本配置
    前端js处理接口返回的压缩包(亲测可用)
    Ubuntu20.4静态ip和dhcp配置
    Java数组类型协变性、泛型类型的不变性
  • 原文地址:https://www.cnblogs.com/leiziv5/p/15583674.html
Copyright © 2011-2022 走看看