Seb*_*ian 2 python database django
目前我在我的settings.py文件中有这个:
DEBUG = True
LOCAL = True
TEMPLATE_DEBUG = DEBUG
SITE_TITLE = 'Stack Overflow Question'
REMOTE_SITE_URL = "http://************:8080"
LOCAL_SITE_URL = "http://************:8000"
ADMINS = (
# ('Your Name', 'your_email@domain.com'),
)
MANAGERS = ADMINS
if LOCAL:
SITE_URL = LOCAL_SITE_URL
ROOT_URL = '/mnt/hgfs/Sites/************'
engine = 'sqlite3'
dbName = '************.db'
dbUser = ''
dbPassword = ''
dbHost = ''
dbPort = ''
else:
SITE_URL = REMOTE_SITE_URL
ROOT_URL = '/var/www/vhosts/www.*************.com/public/'
engine = 'mysql'
dbName = '************'
dbUser = 'www-data'
dbPassword = '************'
dbHost = ''
dbPort = ''
Run Code Online (Sandbox Code Playgroud)
我的想法是,如果我修改LOCAL=True为false,我可以在sqlite3数据库和mysql服务器上保存的数据库之间切换.但是使用SVN时这很麻烦.我想要的是能够settings.py智能地知道它是在服务器上还是在本地运行.有没有办法嗅探URL,IP或只是检查服务器上存在的文件而不是本地?我不仅在寻找一种解决方案,而且还在寻找一种不对服务器征税的解决方案.如果Django每次呈现页面时都检查文件是否存在可能会有点过重.有什么建议?
每次渲染发生时都不会检查文件是否存在.它实际上只会在解释器进程启动时发生,这完全取决于您的部署配置.这取决于您的Web服务器设置的多样性,但如果您使用的是apache,主要是MaxRequestPerChild和StartServers,以及相关参数.例如,如果我有
StartServers 8
MaxrequestsPerChild 4000
Run Code Online (Sandbox Code Playgroud)
在preforked apache中,我将测试该文件的前8个请求,再听32,000个请求,然后再测试该文件8次.(是的,我知道这是很多复杂得多,这一点).
关键是,大多数加载代码的实现都不会经常重新提供settings.py文件.考虑到这一点,如何:
import os
if os.uname()[1] == 'my.development.server.com':
LOCAL = True
else:
LOCAL = False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |