起因
写道
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就好了。。