解析Mac OS下部署Pyhton的Django框架项目的过程
一、安装软件包并创建项目
$sudopipinstalldjango $sudopython-c"importdjango;printdjango.VERSION" (1,7,0,'final',0) $sudodjango-adminstartprojectcmdb#创建项目 $sudodjango-adminstartappcmdb#创建应用
二、修改配置
1、修改settings.py,添加cmdb应用,以及其他设置
INSTALLED_APPS=(
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cmdb',
)
DATABASES={
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'cmdb',
'USER':'cmdb',
'PASSWORD':'cmdb',
'HOST':'localhost',
'PORT':'3306',
}
}
LANGUAGE_CODE='zh-cn'
TIME_ZONE='Asia/Shanghai'
2、修改urls.py和views.py
urls.py内容如下:
fromdjango.conf.urlsimportpatterns,include,url
fromdjango.contribimportadmin
urlpatterns=patterns('',
#Examples:
#url(r'^$','cmdb.views.home',name='home'),
#url(r'^blog/',include('blog.urls')),
url(r'^admin/',include(admin.site.urls)),
url(r'^index/','cmdb.views.index'),
)
views.py内容如下:
fromdjango.shortcutsimportrender
fromdjango.httpimportHttpResponse
defindex(req):
returnHttpResponse('<h1>hellowelcometodjango!</h1>')
3、测试
启动django
#sudopythonmanage.pyrunserver
访问:
http://localhost:8000/index
PS:gunicorn结合nginx来部署django应用
说明:gunicorn部署django程序,前端用nginx处理服务器请求,静态资源直接处理,动态资源转发到后端。
目录结构:
cmdb/ ├──cmdb │└──migrations ├──device_manage ├──idcroom_manage ├──operation │└──migrations └──static └──admin ├──css ├──img │└──gis └──js └──admin
1、安装gunicorn和django
pipinstallgunicorn pipinstalldjango
2、安装MySQLdb
wgethttps://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip cdMySQL-python-1.2.5 pythonsetup.pyinstall
3、用gunicorn启动django程序
[root@backupcmdb]#gunicorn--version gunicorn(version19.1.1) gunicorncmdb.wsgi:application--bind=127.0.0.1:8000--daemon
gunicorn参数:
–bind指定侦听地址
–daemon放到后台运行
更多参数:gunicorn–help
nginx反向代理:
server{
listen8080;
server_name192.168.3.21;
location/{
proxy_passhttp://127.0.0.1:8000;
proxy_next_upstreamhttp_500http_502http_503http_504errortimeoutinvalid_header;
proxy_set_headerX-Forwared-For$proxy_add_x_forwarded_for;
proxy_set_headerHost$http_host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$remote_addr;
}
location/static{
alias/opt/wwwroot/cmdb/static;
}
access_loglogs/cmdb.access.log;
}