gpt4 book ai didi

python - Python 中用于程序范围设置的 "real"全局变量

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:32 25 4
gpt4 key购买 nike

我的主执行文件中有这个:

databaseUrl = appPath + '/db/timey.db' 

它指向我的 SQLite 数据库。

我已经为访问我的模型(数据/数据库)做了一些封装。因此,在最终使用 databaseURL 之前,我需要从 ma​​in -> view.py -> model.py -> db.py 传递它。这将是愚蠢的,因为例如我的 View 类不需要知道我的数据库或其路径。那么什么是真正使这条路径“全局”可访问而不一直传递它的正确方法呢?

我试图使 databaseUrl 成为全局的,但我不喜欢这个想法,而且还没有真正让它像那样工作。

将信息存储在外部文件中会有点矫枉过正,因为无论如何它是唯一(常量!)全局使用的变量。

谢谢!

最佳答案

我认为将其存储在外部文件中一点也不为过。我认为有一个设置或配置文件很有帮助

# 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 文件可让您轻松设置开发/本地数据库 url。为此,您可以拥有一个永远不会置于版本控制之下或打包到您的项目中的 local_settings.py 文件

在你的 settings.py 文件中

try:
from local_settings import *
except ImportError:
pass

然后在 local_settings.py 中你可以覆盖 DATABASE_URL 成为你的开发数据库!!这是一个django项目约定

关于python - Python 中用于程序范围设置的 "real"全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14507858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com