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. BZOJ5288 & 洛谷4436 & LOJ2508:[HNOI/AHOI2018]游戏——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5288 https://www.luogu.org/problemnew/show/P4436 ht ...

  2. LOJ2537:[PKUWC2018]Minimax——题解

    https://loj.ac/problem/2537 参考了本题在网上能找到的为数不多的题解. 以及我眼睛瞎没看到需要离散化,还有不开longlong见祖宗. ——————————————————— ...

  3. MySQL - General error: 1390 Prepared statement contains too many placeholders

    报错原因:预处理 SQL语句时使用的占位符数量超过了最大限制(默认65535). 解决方案:拆分查询语句,每次使用的占位符低于限制即可.

  4. 51nod 1296 有限制的排列(DP)

    对于一个i,如果要比邻居大,那么i比i-1大,i+1比i小,比邻居小同理.设v[i]=0表示i与i-1的关系无限制,v[i]=1表示a[i-1]>a[i],v[i]=2表示a[i-1]<a ...

  5. bzoj3224: Tyvj 1728 普通平衡树(打个splay暖暖手)

    (其实今天好热啊? 题目大意:插入,删除,k小,前驱后继,数的排名. splay和treap裸题...过几天补个treap的 splay: #include<iostream> #incl ...

  6. NOIP2016Day1T2天天爱跑步(LCA+桶)

    据说是今年NOIP最难一题了...我还记得当时满怀期待心情点开Day1的题发现T2就不会了于是怀疑人生良久... 啊好像很多大爷都是用线段树合并写的,我怎么什么数据结构都不会啊呜呜呜... 题目大意就 ...

  7. poco入门

    源码按照poco.然后看README,进行安装. ./configure make make install #include "Poco/ActiveMethod.h" #inc ...

  8. Educational Codeforces Round 61 (Rated for Div. 2) D,F题解

    D. Stressful Training 题目链接:https://codeforces.com/contest/1132/problem/D 题意: 有n台电脑,每台电脑都有初始电量ai,也有一个 ...

  9. 手脱ASProtect v1.2(无Stolen Code)

    1.载入PEID ASProtect v1.2 2.载入OD > 01C04200 push 跑跑赛道.0042C001 ; //入口处 C3 retn AA stos byte ptr es: ...

  10. 裸机配置C语言运行环境

    C语言程序的执行需要栈的支持.部分soc未初始化栈的情况下调用C语言程序会发生错误. start.S中一共配置了看门狗,svc栈,icache. 在x210中看门狗默认关闭,svc栈默认开启,icah ...