Python 快速教程(Django07):马不停蹄
admin
2023-07-31 00:36:02
0

前面的文章研究了Django最主要的几个方面:数据库,模板,动态生成页面等。但都是使用python manage.py runserver来运行服务器。这是一个实验性的web服务器,不适用于正常的站点运行。我们需要一个可以稳定而持续的服务器。这个服务器负责监听http端口,将收到的请求交给Django处理,将Django的回复发还给客户端。

这样的持续性服务器可以有很多选择,比如apache, Nginx, lighttpd等。这里将使用最常见的apache服务器。服务器和Django之间通过Python的web服务接口WSGI连接,因此我们同样需要apache下的mod_wsgi模块。

下面的配置和说明,是在Ubuntu 13.10下进行的。在其它系统下将有所差别。

 

姜戈大喝一声,掉转马头狂奔。 

 

安装

首先需要安装apache2和mod_wsgi。在ubuntu下,我们可以使用apt-get安装:

12 sudo aptget install apache2sudo aptget install libapache2modwsgi

 mod_wsgi也可以在google code下载,自行编译安装。

 

在apache的配置文件/etc/apache2/apache2.conf中增加下面的配置: 

12345678910 # DjangoWSGIScriptAlias / /home/vamei/mysite/mysite/wsgi.pyWSGIPythonPath /home/vamei/mysite Directory /home/vamei/mysite/mysite>Files wsgi.py>  Order deny,allow  Require all grantedFiles>Directory>

上面的配置中/home/ubuntu/mysite是Django项目所在的位置。而/home/ubuntu/mysite/mysite/wsgi.py是Django项目中z自动创建的文件。

可以看到,利用WSGIScriptAlias,我们实际上将URL /对应了wsgi接口程序。这样,当我们访问根URL时,访问请求会经由WSGI接口,传递给Django项目mysite。

 

配置好后,重启apache2

1 sudo /etc/init.d/apache2 restart

 

使用浏览器,可以检查效果:

 

想起逝去的德国人,姜戈心中一痛。

 

静态文件

Django的主要功能是动态的生成HTTP回复。很多媒体文件是静态存储的,如.js文件,.css文件和图片文件。这些文件变动的频率较小。我们希望静态的提供这些文件,而不是动态的生成。这样既可以减小服务器的负担,也便于在浏览器缓存,提高用户体验。

 

我们可以在apache2.conf中添加如下配置:

1234567891011121314151617181920212223 Alias /media/ /home/vamei/media/Alias /static/ /home/vamei/static/ Directory /home/vamei/static/>Order deny,allowRequire all grantedDirectory> Directory /home/vamei/media/>Order deny,allowRequire all grantedDirectory> # DjangoWSGIScriptAlias / /home/vamei/mysite/mysite/wsgi.pyWSGIPythonPath /home/vamei/mysite Directory /home/vamei/mysite/mysite/ >Files wsgi.py>    Order deny,allow    Require all grantedFiles>Directory>

这样,/static/和/media/这两个URL的访问将引导向存有静态文件的/home/vamei/static/和/home/vamei/media/,apache将直接向客户提供这两个文件夹中的静态文件。而剩下的URL访问,将导向WSGI接口,由Django动态处理。

 

在/home/vamei/static/中放入文件revenge.jpg,访问http://localhost/static/revenge:

 

姜戈想到爱人身陷囹圄,忧伤顿时化为愤怒。 

 

其它

云平台或者服务器的部署是一个大的课题,这里无法深入到所有的细节。幸运的是,在网上有丰富的资料。你可以根据自己的平台和问题,搜索相应的资料。

在Django的debug模式下,我们可以在app文件夹中建立static目录,放入静态文件。Django将自动搜索到其中的静态文件。但这一方法有很大的安全隐患,只适用于开发。

 

马蹄声疾,电光火石之间,姜戈已经把护园家丁撂倒在地。

 

总结

apache + mod_wsgi

静态文件

 

“你在外面等我,我要跟他们算总帐”,姜戈对爱人说。


相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...