平时开发或学习时我们通常使用一个单一的设置文件 settings.py文件由django-admin.py startproject命令生成。但是当你准备要进行配置的时候,你将发现你需要多个配置文件以使你的开发环境和产品环境相独立。比如,你可能不想每次在本地机器上测试代码改变的时候将DEBUG从False 改为True。Django通过使用多个配置文件而使得这种情况很容易得到避免。
有三种实现方法(推荐第三种方法):
1. 设置成两个全面的,彼此独立的配置文件
直接把settings.py复制一份即可
2. 设置一个基本的配置文件(比如,为了开发)和第二个(为了产品)配置文件,第二个配置文件仅仅从基本的那个配置文件导入配置,并对需要定义的进行复写.
例:
# settings.py
DEBUG = True
TEMPLATE_DEBUG = DEBUG
DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_NAME = 'devdb'
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_PORT = ''
# settings_production.py
from settings import *
DEBUG = TEMPLATE_DEBUG = False
DATABASE_NAME = 'production'
DATABASE_USER = 'app'
DATABASE_PASSWORD = 'letmein'
3. 使用一个单独的配置文件,此配置文件包含一个Python的逻辑判断根据上下文环境改变设置。
# settings.py
import socket
if socket.gethostname() == 'dx.com':
DEBUG = TEMPLATE_DEBUG = True
else:
DEBUG = TEMPLATE_DEBUG = False
apache/nginx+Django+Gunicorn的部署
安装 Gunicorn
安装gunicorn 就是简单地pip install gunicorn
运行,将Django 作为一个WSGI 应用在Gunicorn 中运行
Gunicorn安装后,可以使用一个gunicorn 命令来启动Gunicorn 服务器进程。最简单地,gunicorn 的调用只需要在其调用位置具有一个包含WSGI application 对象的模块,该对象的名称必须为名为application。所以在一个Django 项目中,调用gunicorn 就像这样:
gunicorn myproject.wsgi
它将启动一个进程,它运行一个线程并监听在127.0.0.1:8000。
注意!它要求你的项目位于Python 的路径中;保证这点最简单的方法就是在与manage.py 文件所在的相同目录中运行这个命令。
gunicorn命令其他参数:
-b 监听ip和端口,默认是 127.0.0.1:8000 如:0.0.0.0:80
-w 开启多个进程 如 -w 8
-k gunicorn默认使用同步阻塞的网络模型(-k sync),对于大并发的访问可能表现不够好, 它还支持其它更好的模式,比如:gevent或meinheld。
先pip installgevent然后使用gevent模型 -kgevent
-c 可以用配置文件
最后可以 nohup -w 4 -k gevent gunicorn AutoSa.wsgi:application
Ubuntu 14.04下Django+MySQL安装部署全过程
Django1.8返回json字符串和接收post的json字符串内容