将Django框架和遗留的Web应用集成的方法
同由其他技术驱动的应用一样,在相同的Web服务器上运行Django应用也是可行的。最简单直接的办法就是利用Apaches配置文件httpd.conf,将不同的URL类型分发至不同的技术。
关键在于只有在您的httpd.conf文件中进行了相关定义,Django对某个特定的URL类型的驱动才会被激活。
<Location"/"> SetHandlerpython-program PythonHandlerdjango.core.handlers.modpython SetEnvDJANGO_SETTINGS_MODULEmysite.settings PythonDebugOn </Location>这里,<Location"/">这一行表示用Django处理每个以根开头的URL.
精妙之处在于Django将<location>指令值限定于一个特定的目录树上。举个例子,比如说您有一个在某个域中驱动大多数页面的遗留PHP应用,并且您希望不中断PHP代码的运行而在../admin/位置安装一个Django域。要做到这一点,您只需将<location>值设置为/admin/即可。
<Location"/admin/"> SetHandlerpython-program PythonHandlerdjango.core.handlers.modpython SetEnvDJANGO_SETTINGS_MODULEmysite.settings PythonDebugOn </Location>
有了这样的设置,只有那些以/admin/开头的URL地址才会触发Django去进行处理。其他页面会使用已存在的设置。
请注意,把Diango绑定到的合格的URL(比如在本章例子中的/admin/)并不会影响其对URL的解析。绝对路径对Django才是有效的(例如/admin/people/person/add/),而非截断后的URL(例如/people/person/add/)。这意味着你的根URLconf必须包含前缀/admin/。