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 ...
随机推荐
- 斜率优化第一题! HDU3507 | 单调队列优化DP
放一手原题 题解: 第一次写(抄)斜率优化,心里还是有点小激动的.讲一下怎么实现的! 首先我们可以考虑一个朴素的dp:DP[i]表示前i个数字的最少花费,显然我们有一个转移方程 DP[i]=min{D ...
- BZOJ2434 [Noi2011]阿狸的打字机 【AC自动机 + fail树 + 树状数组】
2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 3610 Solved: 1960 [Submit][S ...
- 洛谷 P2272 [ZJOI2007]最大半连通子图 解题报告
P2272 [ZJOI2007]最大半连通子图 题目描述 一个有向图\(G=(V,E)\)称为半连通的\((Semi-Connected)\),如果满足:\(\forall u,v \in V\),满 ...
- 项目管理---git----快速使用git笔记(六)------本地开发与远程仓库的交互----常用git命令
无论是我们自己把本地的项目新建了一个远程仓库 还是 从远程仓库获取到了 本地,现在我们都在本地有了一份项目代码,服务器上对应有项目代码的信息. 现在我们就开始进行交互操作了. 也就是说明一些在 正常开 ...
- 四连测Day2
题目:链接: https://pan.baidu.com/s/1ef_9hGBhczW0B4dz5IUKmw 密码: qgjy T1: hash后直接二分查询即可 #include<iostre ...
- 如何用好 github 中的 watch、star、fork
http://www.jianshu.com/p/6c366b53ea41 https://www.zhihu.com/question/20431718 在每个 github 项目的右上角,都有三个 ...
- Java Zip压缩
1.压缩文件或整个目录 // ZipCompression.java import java.io.File;import java.io.FileInputStream;import java.io ...
- Axis2 WebService(配置、发布、调用)
准备工作 1.下载:axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址:http://axis.apache.org/axis2/java/core/ 2.环境变 ...
- LightOJ 1140 计数/数位DP 入门
题意: 给出a,b求区间a,b内写下过多少个零 题解:计数问题一般都会牵扯到数位DP,DP我写的少,这道当作入门了,DFS写法有固定的模板可套用 dp[p][count] 代表在p位 且前面出现过co ...
- [USACO13FEB]出租车Taxi
洛谷题目链接:[USACO13FEB]出租车Taxi 题目描述 Bessie is running a taxi service for the other cows on the farm. The ...