将Django框架和遗留的Web应用集成的方法

yipeiwu_com5年前Python基础

同由其他技术驱动的应用一样,在相同的Web服务器上运行Django应用也是可行的。 最简单直接的办法就是利用Apaches配置文件httpd.conf,将不同的URL类型分发至不同的技术。

关键在于只有在您的httpd.conf文件中进行了相关定义,Django对某个特定的URL类型的驱动才会被激活。

<Location "/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE mysite.settings
  PythonDebug On
</Location>

这里, <Location "/"> 这一行表示用Django处理每个以根开头的URL.

精妙之处在于Django将<location>指令值限定于一个特定的目录树上。 举个例子,比如说您有一个在某个域中驱动大多数页面的遗留PHP应用,并且您希望不中断PHP代码的运行而在../admin/位置安装一个Django域。 要做到这一点,您只需将<location>值设置为/admin/即可。

<Location "/admin/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE mysite.settings
  PythonDebug On
</Location>

有了这样的设置,只有那些以/admin/开头的URL地址才会触发Django去进行处理。 其他页面会使用已存在的设置。

请注意,把Diango绑定到的合格的URL(比如在本章例子中的 /admin/ )并不会影响其对URL的解析。 绝对路径对Django才是有效的(例如 /admin/people/person/add/ ),而非截断后的URL(例如 /people/person/add/ )。这意味着你的根URLconf必须包含前缀 /admin/ 。

相关文章

MySQLdb ImportError: libmysqlclient.so.18解决方法

安装MySQLdb后,import MySQLdb出错如下: 复制代码 代码如下: [root@lizhong MySQL-python-1.2.3]# /usr/local/bin/p...

python3.3教程之模拟百度登陆代码分享

复制代码 代码如下:#-*-coding:utf-8-*-'''Created on 2014年1月10日 @author: hhdys'''import urllib.request,...

Python利用ElementTree模块处理XML的方法详解

前言 最近因为工作的需要,在使用 Python 来发送 SOAP 请求以测试 Web Service 的性能,由于 SOAP 是基于 XML 的,故免不了需要使用 python 来处理...

用python结合jieba和wordcloud实现词云效果

用python结合jieba和wordcloud实现词云效果

0x00 前言 突然想做一个漏洞词云,看看哪些漏洞比较高频,如果某些厂商有漏洞公开(比如ly),也好针对性挖掘。就选x云吧(镜像站 http://wy.hxsec.com/bugs.ph...

Python实现Linux下守护进程的编写方法

本文实例讲述了Python实现Linux下守护进程的编写方法,分享给大家供大家参考,相信对于大家的Python程序设计会起到一定的帮助作用。具体方法如下: 1. 调用fork()以便父进...