1 Star 0 Fork 1

DYOS/china_address

forked from MannixPi/china_address 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
db.py 1.38 KB
一键复制 编辑 原始数据 按行查看 历史
MannixPi 提交于 2023-07-06 16:33 . 第一次提交
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from urllib import parse
from settings import MYSQL_SETTING
# SQLALCHEMY_DATABASE_URL = 'sqlite:///./db.sqlite3' # sqlite连接方法
# MySQL或PostgreSQL的连接方法
SQLALCHEMY_DATABASE_URL = f"mysql+pymysql://{MYSQL_SETTING['user']}:{parse.quote_plus(MYSQL_SETTING['password'])}@{MYSQL_SETTING['host']}:{MYSQL_SETTING['port']}/{MYSQL_SETTING['db']}?charset=utf8"
engine = create_engine(
# echo=True表示引擎将用repr()函数记录所有语句及其参数列表到日志
# 由于SQLAlchemy是多线程,指定check_same_thread=False来让建立的对象任意线程都可使用。这个参数只在用SQLite数据库时设置
# connect_args={'check_same_thread': False},
SQLALCHEMY_DATABASE_URL,
encoding='utf-8',
echo=True
)
# 在SQLAlchemy中,CRUD都是通过会话(session)进行的,所以我们必须要先创建会话,每一个SessionLocal实例就是一个数据库session
# flush()是指发送数据库语句到数据库,但数据库不一定执行写入磁盘;commit()是指提交事务,将变更保存到数据库文件
SessionLocal = sessionmaker(
bind=engine, autoflush=False, autocommit=False, expire_on_commit=True)
# 创建基本映射类
Base = declarative_base(bind=engine, name='Base')
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/dy/china_address.git
git@gitee.com:dy/china_address.git
dy
china_address
china_address
main

搜索帮助