解析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获取网页状态码示例
Mar 30 Python
python技能之数据导出excel的实例代码
Aug 11 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
python通过zabbix api获取主机
Sep 17 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
PyTorch: Softmax多分类实战操作
Jul 07 Python
Python爬取12306车次信息代码详解
Aug 12 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
Python根据字符串调用函数过程解析
Nov 05 Python
PyTorch 中的傅里叶卷积实现示例
Dec 11 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
Django实现聊天机器人
May 31 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-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
python处理“
2019/06/10 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
护理专业毕业生推荐信
2013/10/31 职场文书
生产班组长岗位职责
2014/01/05 职场文书
学生打架检讨书
2014/02/14 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
法制教育演讲稿
2014/09/10 职场文书
长城的导游词
2015/01/30 职场文书
中学教师教学工作总结
2015/08/13 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle