我在主执行文件中有这个:
databaseUrl = appPath + '/db/timey.db'
指向我的SQLite DB。
我已经做了一些封装来访问我的模型(Data / DB)。所以在databaseURL最终被使用之前,我需要从 main - >传递它view.py - > model.py - > db.py. 这将是愚蠢的,因为例如我的视图类不需要知道我的数据库或其路径。那么,什么是一种适当的方法来实际使这条路径“全局”可访问而不会一直传递它?
我尝试将databaseUrl设为全局,但我不喜欢这个想法,并且还没有真正让它像这样工作。
将信息存储在外部文件中会是一种过度杀伤,因为它是唯一的(常量!)全局使用变量。
谢谢!
答案 0 :(得分:6)
我不认为将它存储在外部文件中会有点过分。我认为有一个设置或配置文件是有帮助的
# settings.py
import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
DATABASE_URL = ''
DATABASE_USER = ''
DATABSE_PASSWORD = ''
等
from myproject import settings
settings.DATABASE_URL
django和scrapy用于存储项目数据库配置设置和所有其他项目设置
另外,如果你有一个数据库类,将这些设置存储在其中是否有意义?我不知道。
settings.py文件可让您轻松设置开发/本地数据库网址。
为此,您可以拥有一个local_settings.py
文件,该文件永远不会置于版本控制之下或打包在您的项目中
try:
from local_settings import *
except ImportError:
pass
然后在local_settings.py中你可以覆盖DATABASE_URL作为你的开发数据库!!这是一个django项目大会