起因
写道
settings文件是网站最为关键的配置文件,但这个文件对于不同时期的版本里面的内容是不一样的.经常会造成该文件被莫名替换,被修改
导致一些不可知的问题发生.
导致一些不可知的问题发生.
需求
写道
设计好的settings模式,来方便于在各种环境中进行测试;
设计好的settings,就是如何建立完善的Django设置模块。
设计好的settings,就是如何建立完善的Django设置模块。
资源
http://rdegges.com/the-perfect-django-settings-file
测试
写道
让我们删掉settings.py文件,来创建一个settings的模块吧..
the one
mv settings.py settings.py.me django-admin.py startapp settings
the second
写道
1.定义一个common.py文件,用来放置所有配置共享的信息,即公共信息;
2.定义各个环境下用到的配置文件,并确保在文件的开头import common.py的信息;
如:dev.py,work.py等.
3.运行 python manage.py runserver --settings=settings.dev
2.定义各个环境下用到的配置文件,并确保在文件的开头import common.py的信息;
如:dev.py,work.py等.
3.运行 python manage.py runserver --settings=settings.dev
看看我的更改
1.创建了一个settings的app,包含__init__.py文件,这个settings的app就不需要加入到settings.py的apps里了; 2.创建了一个common.py文件,里面放的是所有的公共信息; 3.创建了一个dev.py的开发环境配置信息,我只放了下面几组信息; #coding=utf-8 from common import * DEBUG = True #DEBUG = False LOCAL_DEV = DEBUG # this is a Product env #LOCAL_DEV = False # this is a Product env TEMPLATE_DEBUG = DEBUG #django-tool-bar if LOCAL_DEV: INTERNAL_IPS = ('127.0.0.1',) CACHE_BACKEND='memcached://127.0.0.1:11211/' CACHE_TIMEOUT = 60*60*24 CACHE_PREFIX = 'icgoo' DJANGO_SETTINGS_MODULE = 'settings.dev' SITE_URL = '' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': 'icgoo', # Or path to database file if using sqlite3. 'USER': 'lidongdev', # Not used with sqlite3. 'PASSWORD': 'asdasd', # Not used with sqlite3. 'HOST': '192.168.0.8', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '3306', # Set to empty string for default. Not used with sqlite3. }, 'slave1': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': 'xiaofei_icgoo', # Or path to database file if using sqlite3. 'USER': 'root', # Not used with sqlite3. 'PASSWORD': '820310', # Not used with sqlite3. 'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '3306', # Set to empty string for default. Not used with sqlite3. }, 'icbase': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': 'icgoo_icbase', # Or path to database file if using sqlite3. 'USER': 'lidongdev', # Not used with sqlite3. 'PASSWORD': 'asdasd', # Not used with sqlite3. 'HOST': '192.168.0.8', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '3306', # Set to empty string for default. Not used with sqlite3. }, } ** 这里的DJANGO_SETTINGS_MODULE变量以前是settings,因为以前的配置文件就是settings,这里变成了settings.dev文件; *** 4.common.py里还有一个文件需要修改一下 DIRNAME = os.path.dirname(__file__) (old) DIRNAME = os.path.split(os.path.dirname(__file__))[0] (new) 以前settings文件是直接放在根目录的,但现在的dev设置文件,是在settings文件夹下,所以还要退出settings文件夹. 5.运行 ^Cxiaofei@xiaofei-desktop:~/work/branches/xiaofei/v44$ python manage.py runserver --settings=settings.dev 21 Nov 2012 09:58:14 root INFO Satchmo Started 21 Nov 2012 09:58:15 root INFO Satchmo Started Validating models... 21 Nov 2012 09:58:16 purchaseorder.config DEBUG added purchase order payments socket setdefaulttimeout: 60 s socket set timeout: 10 s 结束初始化第一次访问 http://cn.mouser.com 设置cookie语言货币取值为: 英文网站 美元货币 has set timeout of socket is: 10 s socket set timeout: 10 s 21 Nov 2012 09:58:17 shop.listeners DEBUG Added default shop listeners 0 errors found Django version 1.3, using settings 'settings.dev' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
问题
写道
1.发现所有的国际化都不自动翻译了??
-- 我发现 我改为 --settings=v44.settings.dev就好了。。
-- 我发现 我改为 --settings=v44.settings.dev就好了。。