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的更多相关文章

  1. SLAM+语音机器人DIY系列:(八)高阶拓展——2.centos7下部署Django(nginx+uwsgi+django+python3)

    0.安装步骤预览(1)系统默认自带python2.x,所以需要先安装python3.x(2)python2对应pip,python3对应pip3,用源码安装python3后pip3也自动安装了(3)用 ...

  2. 利用Django构建web应用及其部署

    注:很久之前就有了学习Django的想法,最近终于有机会做了一次尝试.由于Django的详细教程很多,我在这里就不再详述了,只是将整个开发流程以及自己在学习Django中的一些思考记录在此. Syst ...

  3. 阿里云部署django实现公网访问

    本博的主要目的是对阿里云部署django实现公网访问进行一次简单的记录,方便日后查询. 内容目录: (1)申请阿里云服务器及安全组配置 (2)实现ssh远程控制 (3)实现ftp文件传输 (4)安装p ...

  4. 全面解读Python Web开发框架Django,利用Django构建web应用及其部署

    全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...

  5. mac osx 上面部署Django项目 apache+mysql+mod_wsgi

    1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...

  6. Ubuntu上通过nginx部署Django笔记

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式.今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,g ...

  7. Apache2.4部署django出现403 Forbidden错误解决办法

    前言:Apache2.4部署django出现403 Forbidden错误最好要结合apache中的错误日志来观察出现何种错误导致出现403错误 下午百度了一下午没找到解决办法,试了n种方法,简直坑爹 ...

  8. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  9. CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程

    Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...

随机推荐

  1. POJ2299:Ultra-QuickSort——题解

    http://poj.org/problem?id=2299 题目大意:给一串数,求其按照两两交换排序最少排几次. 求逆序对裸题,不建议用数据结构(因为需要离散化) #include<cstdi ...

  2. BZOJ3329:Xorequ——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3329 原式化为x^2x=3x,而且实际上异或就是不进位的加法. 那么我们又有x+2x=3x,所以在做 ...

  3. php ul li 分类

    <?phpfunction do_tree($arr,$pid){ echo "<ul>"; foreach ($arr as $key => $value ...

  4. 【树形DP】【UVA10859】 Placing Lampposts

    传送门 Description 给定一个\(n\)个点\(m\)条边的无向无环图,选择尽量少的节点,使得所有边都至少有一个顶点被选择.在这个基础上,要求有两个顶点被选择的边数尽可能大 Input 多组 ...

  5. 关于springmvc下服务器文件打包成zip格式下载功能

    关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储   版权声明:本文为博主 ...

  6. Java编程MapReduce实现WordCount

    Java编程MapReduce实现WordCount 1.编写Mapper package net.toocruel.yarn.mapreduce.wordcount; import org.apac ...

  7. JavaScript如何获得input元素value的值

    在JavaScript中获取input元素value的值: 方法一: <!DOCTYPE html> <html> <head> <meta charset= ...

  8. 禁用 nouveau 驱动

    安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突. 安装网上方法尝试了modprob.d/blacklist.conf里的各种修改,重启以后还是没有成功警用nouveau驱动 最后看见 ...

  9. tinyxml源码解析(上)

    转载于:http://www.cnblogs.com/marchtea/archive/2012/11/09/2762669.html 前言: 前段时间做功能可行性的时候简单的使用了tinyxml.在 ...

  10. 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 ...