django “如何”系列6:如何部署django
django满满的快捷方法是的web开发者活的更轻松,但是,如果你不能部署你的站点的话,这是一点用都没有的。不违初衷,部署的简化也是django的一大目标。你可以有几个方法轻松的部署django
由于每一种方法(设置大方法下面的小方法)都可以自成一节,所以就不详细说了,本节仅仅是给大家做一个全面的概述
- 使用WSGI部署
- 使用FastCGI, SCGI, or AJP部署
- 使用mod_python (不建议使用)部署(在django1.5中将被移除)
使用WSGI部署
django首要的部署凭平台是WSGI-web服务器网关接口-django的startproject管理命令设置了一个简单的WSGI配置,你可以根据你的项目要求进行调整,使用任意的wsgi兼容的web服务器,django包含了如何使用下面的wsgi服务器的说明。
- 使用Apache and mod_wsgi
- 使用Gunicorn
- 使用uWSGI
在介绍这三种之前,我们先来看一下一些基本的内容
application对象
用wsgi部署的一个关键概念是指定一个重要的可调用的application对象,这个对象是web服务器和你的代码交流的媒介吧,也就是在你的服务器可以访问的python模块里面定义一个叫application的对象。
django1.4中,使用startproject创建的项目会在projectname/目录下创建一个wsgi.py文件,这个文件的初始化内容大概是下面这样的:
import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "biyesheji.settings") # This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application() # Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)
如果你没有显式的设置DJANGO_SETTINGS_MODOUL环境变量,os.environ.setdefault仅仅是设置了要使用的默认配置模块
如果你要使用wsgi中间件的话,可以参考最后两行的格式
如何使用Apache和mod_wsgi部署django
使用Apache和mod_wsgi是一个经得起考验的部署django到实际应用中的方法,mod_wsgi是一个可以承载任何python wsgi应用的Apache模块,包括django。django可以与支持mod_wsgi的任意版本的Apache服务器合作工作。官方的mod_wsgi文档是非常奇妙的,不过怎么去了解使用mod_wsgi是你的事情了,哈哈,下面是介绍和使用mod_wsgi的链接
http://code.google.com/p/modwsgi/
http://code.google.com/p/modwsgi/wiki/InstallationInstructions
后面我们会专门讲解
使用Gunicorn部署django
Gunicorn(Green Unicorn)是一个为Unix开发的纯python的wsgi,没有其他的依赖并且很容易安装是使用。有两个在django中使用Gunicorn的方法,一个是使得Gunicorn把django当做另外一个wsgi应用来看待,第二种是使用django和Gunicorn的特殊融合。具体可以参考Gunicorn的文档
http://gunicorn.org/
使用uWSGI保护署django
uWSGI是一个纯C语言开发的快速,自修复和开发者/系统管理员友好的应用程序容器服务器
uWSGI操控一个客户端/服务器的模型,你的web服务器通过和django-uwsgi工作进程交流去服务动态的内容。uWSGI也有几种方法去配置进程,详细自己去看uWSGI的文档或者等我写后面的章节
http://projects.unbit.it/uwsgi/
使用FastCGI, SCGI或者 AJP部署
尽管WSGI是部署django完美的部署平台,但很多人却在使用共享主机(该协议下FastCGI, SCGI, or AJP是唯一可行的选择)。使用他们的前提是安装flup模块,一个专门的python库。
使用mod_python部署
django1.5以后将会移除这个模块,所以建议你使用mod_wsgi或者其他可用的服务器。
鉴于篇幅问题,这节主要跟大家介绍部署django的大体方法和分类,具体的部署以后我会通过例子来跟大家讲解
django “如何”系列6:如何部署django的更多相关文章
- SLAM+语音机器人DIY系列:(八)高阶拓展——2.centos7下部署Django(nginx+uwsgi+django+python3)
0.安装步骤预览(1)系统默认自带python2.x,所以需要先安装python3.x(2)python2对应pip,python3对应pip3,用源码安装python3后pip3也自动安装了(3)用 ...
- 利用Django构建web应用及其部署
注:很久之前就有了学习Django的想法,最近终于有机会做了一次尝试.由于Django的详细教程很多,我在这里就不再详述了,只是将整个开发流程以及自己在学习Django中的一些思考记录在此. Syst ...
- 阿里云部署django实现公网访问
本博的主要目的是对阿里云部署django实现公网访问进行一次简单的记录,方便日后查询. 内容目录: (1)申请阿里云服务器及安全组配置 (2)实现ssh远程控制 (3)实现ftp文件传输 (4)安装p ...
- 全面解读Python Web开发框架Django,利用Django构建web应用及其部署
全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...
- mac osx 上面部署Django项目 apache+mysql+mod_wsgi
1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...
- Ubuntu上通过nginx部署Django笔记
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式.今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,g ...
- Apache2.4部署django出现403 Forbidden错误解决办法
前言:Apache2.4部署django出现403 Forbidden错误最好要结合apache中的错误日志来观察出现何种错误导致出现403错误 下午百度了一下午没找到解决办法,试了n种方法,简直坑爹 ...
- 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...
- CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程
Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...
随机推荐
- POJ2299:Ultra-QuickSort——题解
http://poj.org/problem?id=2299 题目大意:给一串数,求其按照两两交换排序最少排几次. 求逆序对裸题,不建议用数据结构(因为需要离散化) #include<cstdi ...
- BZOJ3329:Xorequ——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=3329 原式化为x^2x=3x,而且实际上异或就是不进位的加法. 那么我们又有x+2x=3x,所以在做 ...
- php ul li 分类
<?phpfunction do_tree($arr,$pid){ echo "<ul>"; foreach ($arr as $key => $value ...
- 【树形DP】【UVA10859】 Placing Lampposts
传送门 Description 给定一个\(n\)个点\(m\)条边的无向无环图,选择尽量少的节点,使得所有边都至少有一个顶点被选择.在这个基础上,要求有两个顶点被选择的边数尽可能大 Input 多组 ...
- 关于springmvc下服务器文件打包成zip格式下载功能
关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储 版权声明:本文为博主 ...
- Java编程MapReduce实现WordCount
Java编程MapReduce实现WordCount 1.编写Mapper package net.toocruel.yarn.mapreduce.wordcount; import org.apac ...
- JavaScript如何获得input元素value的值
在JavaScript中获取input元素value的值: 方法一: <!DOCTYPE html> <html> <head> <meta charset= ...
- 禁用 nouveau 驱动
安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突. 安装网上方法尝试了modprob.d/blacklist.conf里的各种修改,重启以后还是没有成功警用nouveau驱动 最后看见 ...
- tinyxml源码解析(上)
转载于:http://www.cnblogs.com/marchtea/archive/2012/11/09/2762669.html 前言: 前段时间做功能可行性的时候简单的使用了tinyxml.在 ...
- Change FZU - 2277 毒瘤啊 毒瘤题目
There is a rooted tree with n nodes, number from 1-n. Root’s number is 1.Each node has a value ai. I ...