Notion Blog
技术分享1 分钟阅读

fastapi中用sqlalchemy连接数据库

fastapi sqlalchemy连接数据库

import yaml
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

db = yaml.safe_load(open("config.yaml", 'r', encoding="utf-8"))['db']['test']
# SQLALCHEMY_DATABASE_URL = "sqlite:///./sqlite.db"
SQLALCHEMY_DATABASE_URL = f"postgresql://{db['user']}:{db['password']}@{db['remote_address'][0]}:{db['remote_address'][1]}/cp-scheduling-test"
engine = create_engine(
    SQLALCHEMY_DATABASE_URL
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

由于官方的例子是用的sqlite

需要去掉engine = create_engine(SQLALCHEMY_DATABASE_URL,connect_args={"check_same_thread": False})中的第二个参数

engine = create_engine(
    SQLALCHEMY_DATABASE_URL
)

如果没有去掉会提示

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) invalid dsn: invalid connection option "check_same_thread”

有关使用上的问题,欢迎您在底部评论区留言,一起交流~

读者评论

评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。