FastAPI|FastAPI 学习之路(六十一)使用mysql数据库替换sqlite数据库
我们首先需要安装对应的连接的依赖
pip install pymysql
然后在配置testDatabase.py
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmakerSQLALCHEMY_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 EVENTif EVENT == "test": from models.testDatabase import Base, engineelse: from models.database import Base, engineclass 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")
然后我们在启动,
文章图片
日志里面正常去创建了对应的数据库。
【FastAPI|FastAPI 学习之路(六十一)使用mysql数据库替换sqlite数据库】
文章图片
在数据库的对应的数据表也同步创建成功,这样我们就完成了,测试服的替换,我们可以用接口工具postman去调试下。
文章图片
可以看到创建成功,
文章图片
数据库中,也正常了创建了对应的数据,我们在测试服的更改数据库完成,同比,我们的其他环境也可以这么修改即可。
代码存储
https://gitee.com/liwanlei/fastapistuday
文章首发在公众号,欢迎关注。
文章图片
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》