解析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实现ftp客户端示例分享
Feb 17 Python
python的即时标记项目练习笔记
Sep 18 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
Apr 06 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
python中列表的切片与修改知识点总结
Jul 23 Python
pandas 如何分割字符的实现方法
Jul 29 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
Feb 06 Python
Python实现粒子群算法的示例
Feb 14 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
PHP print类函数使用总结
2010/06/25 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
javascript event 事件解析
2011/01/31 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
python向图片里添加文字
2019/11/26 Python
Django更新models数据库结构步骤
2020/04/01 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
python如何提升爬虫效率
2020/09/27 Python
美国在线工具商店:Acme Tools
2018/06/26 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
文员求职信
2014/07/15 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
奖励通知
2015/04/22 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
家长意见书
2015/06/04 职场文书
Mysql案例刨析事务隔离级别
2021/09/25 MySQL
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫