You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Django项目中应将SQLAlchemy Engine/Connection对象放置于何处?

在Django项目中放置SQLAlchemy Engine对象的方案

推荐放置位置

  • 项目根目录的独立配置文件:新建sqlalchemy_config.py文件,集中定义Engine对象,方便所有模块导入使用。示例代码:
from sqlalchemy import create_engine
from django.conf import settings

# 从Django配置中读取数据库信息,避免硬编码敏感信息
engine = create_engine(
    f"postgresql+psycopg2://{settings.DB_USER}:{settings.DB_PASSWORD}@{settings.DB_HOST}:{settings.DB_PORT}/{settings.DB_NAME}"
)
  • 模型/查询包内的配置文件:如果你的SQLAlchemy模型和查询方法已经有单独的包(比如sqlalchemy_models/),可以把Engine放在该包的config.py或__init__.py中,让同包内的代码直接引用,保持结构一致性。

关键注意事项

  • 不要在视图函数或每次请求时重复创建Engine:Engine是线程安全的,全局单例即可,重复实例化会造成数据库连接资源浪费。
  • 禁止硬编码数据库凭证:在Django的settings.py中添加数据库配置项,再从配置中读取,示例:
# settings.py中添加
DB_USER = "scott"
DB_PASSWORD = "tiger"
DB_HOST = "localhost"
DB_PORT = 5432
DB_NAME = "mydatabase"
  • 测试环境适配:如果使用Django测试框架,要单独配置测试用的Engine,避免测试操作污染生产数据库。

内容的提问来源于stack exchange,提问作者PaleNeutron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:15:45