解析Mac OS下部署Pyhton的Django框架项目的过程


Posted in Python onMay 03, 2016

一、安装软件包并创建项目

$sudo pip install django
$sudo python -c "import django;print django.VERSION"
(1, 7, 0, 'final', 0)
$sudo django-admin startproject cmdb #创建项目
$sudo django-admin startapp cmdb #创建应用

二、修改配置
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内容如下:

from django.conf.urls import patterns, include, url
from django.contrib import admin
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内容如下:

from django.shortcuts import render
from django.http import HttpResponse
def index(req):
 return HttpResponse('<h1>hello welcome to django!</h1>')

3、测试
启动django

#sudo python manage.py runserver

访问:
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

pip install gunicorn
pip install django

2、安装MySQLdb

wget https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip
cd MySQL-python-1.2.5
python setup.py install

3、用gunicorn启动django程序

[root@backup cmdb]# gunicorn --version
gunicorn (version 19.1.1)
gunicorn cmdb.wsgi:application --bind=127.0.0.1:8000 --daemon

gunicorn参数:

?bind指定侦听地址

?daemon放到后台运行

更多参数:gunicorn ?help

nginx反向代理:

server {
   listen 8080;
   server_name 192.168.3.21;
   location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
    proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for ;
    proxy_set_header Host $http_host ;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
   } 
 location /static {
alias /opt/wwwroot/cmdb/static;
 }
 access_log logs/cmdb.access.log;
  }
Python 相关文章推荐
Python 实现网页自动截图的示例讲解
May 17 Python
python脚本监控Tomcat服务器的方法
Jul 06 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
Python模块汇总(常用第三方库)
Oct 07 Python
python读取Kafka实例
Dec 23 Python
python实现删除列表中某个元素的3种方法
Jan 15 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
详解用Python进行时间序列预测的7种方法
Mar 13 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 Python
python用分数表示矩阵的方法实例
Jan 11 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 #Python
Python中字符串的格式化方法小结
May 03 #Python
Python实现约瑟夫环问题的方法
May 03 #Python
Python实现堆排序的方法详解
May 03 #Python
python web框架学习笔记
May 03 #Python
Python批量修改文本文件内容的方法
Apr 29 #Python
Python+Opencv识别两张相似图片
Mar 23 #Python
You might like
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
jquery禁用右键示例
2014/04/28 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Flask之请求钩子的实现
2018/12/23 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
python异常处理和日志处理方式
2019/12/24 Python
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
客户服务经理岗位职责
2014/01/29 职场文书
项目投资意向书
2014/04/01 职场文书
婚前协议书怎么写
2014/04/15 职场文书
消防志愿者活动方案
2014/08/23 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
学校党支部承诺书
2015/04/30 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
婚宴新娘致辞
2015/07/28 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript