解析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制作爬虫采集小说
Oct 25 Python
python框架django基础指南
Sep 08 Python
python3中str(字符串)的使用教程
Mar 23 Python
python中实现字符串翻转的方法
Jul 11 Python
Python使用pandas对数据进行差分运算的方法
Dec 22 Python
Python编程深度学习计算库之numpy
Dec 28 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
python多进程使用函数封装实例
May 02 Python
Django 构建模板form表单的两种方法
Jun 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获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
jsTree使用记录实例
2016/12/01 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python发送邮件脚本
2018/05/22 Python
学习python的前途 python挣钱
2019/02/27 Python
python使用requests.session模拟登录
2019/08/09 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
详解python datetime模块
2020/08/17 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
经理管理专业自荐信范文
2013/12/31 职场文书
初中生物教学反思
2014/01/10 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
《去年的树》教学反思
2016/02/18 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
python小型的音频操作库mp3Play
2022/04/24 Python
mysql如何查询连续记录
2022/05/11 MySQL