FastAPI 学习之路(五十三)根据环境不同连接不同数据库
2023-09-27 14:27:40 时间
在实际的开发过程中,我们数据库,可以根据连接的环境不一样,我们会拆分成不一样的数据库,根据我们所要用的环境来选择对应的数据库即可,那么我们应该如何去实现根据选择去选择不一样的数据库呢。
首先,我们找一个配置的文件,我们这里演示 我们使用config.py去配置环境。配置如下
EVENT="test"
接下来,我们去创建一个测试用的数据库配置,起名:testDatabse.py
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker SQLALCHEMY_DATABASE_URL = "sqlite:///./test1.db" engine = create_engine( SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} ) TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base()
然后我们修改models.py。如下
from config import EVENT if EVENT=="test": from models.testDatabase import Base,engine else: from models.database import Base,engine ....数据库设计 Base.metadata.create_all(bind=engine)
接下来我们去根据不同环境去连接不一样的数据库即可。
from models.database import * from models.testDatabase import TestingSessionLocal from config import EVENT def get_test_db(): db=TestingSessionLocal() try: yield db finally: db.close() def get_db_pro(): """ 每一个请求处理完毕后会关闭当前连接,不同的请求使用不同的连接 :return: """ db = SessionLocal() try: yield db finally: db.close() if EVENT =="test": get_db=get_test_db else: get_db=get_db_pro
最后在连接数据库的地方,我们把get_db替换成从
from get_db import get_db
因为我们去创建了不一样的数据库,根据不一样的环境去连接的。我们写一个测试方法,去测试下
def test_create_user(): client = TestClient(app) response = client.post( "/user/users/", json={"email": "test@example.com", "password": "leizi"}, ) assert response.status_code == 200 if __name__ == "__main__": test_create_user()
我们去执行下看下,
我们可以看到,执行完毕后数据落在了我们配置的测试环境的测试数据看中。
文章首发在公众号,欢迎关注。
相关文章
- MySQL学习笔记_1_MySQL数据库管理系统概述
- Spring Transaction(事物)学习一、数据库事物、隔离级别
- 【数据库和SQL学习笔记】5.SELECT查询3:多表查询、连接查询
- 【数据库和SQL学习笔记】1.SQL语言的功能和特点,数据定义语言和应用,主键和外键
- 【神经网络与深度学习】【计算机视觉】视频中行为识别公开数据库汇总
- Confluence 6 PostgreSQL 测试你的数据库连接
- 数据分析:大数据分析师必备技能【统计分析、可视化辅助工具、大数据处理框架、数据库、数据仓库、数据挖掘工具、机器学习、挖掘算法、编程语言】
- Android学习笔记————利用JDBC连接服务器数据库
- Redis学习之路(005)- redis内存数据库C客户端hiredis API 中文说明
- windwos下 远程连接服务器上的iotdb数据库
- mysql数据库查看操作日志记录
- odoo学习笔记(模型)数据库设置
- Django学习(4)表单,让数据库更美好
- 查看 Oracle 数据库内 没有Primary key 类型主键的表信息
- Linux下数据库备份恢复过程
- 【ChatGPT】我同时问 ChatGLM / Sage / ChatGPT :MySQL 添加索引之后 数据库做了些什么? 看看它们分别怎么回答……
- Neo4j数据库学习一:安装和数据类型常用命令简介
- 修改phpMYadmin 链接其他数据库地址的方法
- 数据库三范式理解
- 阿里云的答案,以自研数据库POLARDB构筑云计算底层竞争力
- 存储过程学习笔记(SQL数据库
- Mysql学习(三)之数据库管理工具Navicat
- 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表
- python pymysql multiprocessing.dummy多线程 读写数据库报错
- mysql数据库——连接查询(内连接:自然连接,等值连接。外连接:左连接,右连接,全连接)
- FastAPI 学习之路(三十三)操作数据库
- 21.数据库学习五 Mysql数据库子查询、联合查询
- Litepal (数据库框架) 学习笔记
- PHP 数据库驱动、连接数据不同方式学习笔记
- 42.QT-QSqlQuery类操作SQLite数据库(创建、查询、删除、修改)详解
- 十五、python学习之MySQL数据库(二):数据库的操作