解析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; }