ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

用于程序范围设置的Python中的“真实”全局变量

2019-08-25 23:58:31  阅读:151  来源: 互联网

标签:python global-variables


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

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

这指向我的SQLite DB.

我已经做了一些封装来访问我的模型(Data / DB).所以,直到databaseURL最终被使用,我需要从main传递它 – > view.py – > model.py – > db.py.
这将是愚蠢的,因为例如我的视图类不需要知道我的数据库或其路径.那么,什么是一种适当的方法来实际使这条路径“全局”可访问而不会一直传递它?

我试图使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,global-variables
来源: https://codeday.me/bug/20190825/1724147.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有