Nickcheng.LOG

在天朝的每天都当最后一天吧!

Django server和Apache下运行Django的细微差别

one comment

今天把在家调好的网站放到服务器上, 发现不能运行, 提示 ViewDoesNotExist 的异常错误. 一开始以为又是服务器上的文件访问权限问题, 但是 chmod 到 777 之后问题还是照旧, 而且在我本地用”manage.py runserver”运行还是没有问题. 于是乎, 去Python-Chinese的邮件列表寻找答案. 看到limodou有如下一说:

使用apache要复杂些,要把project的路径和它的父路径都加入sys.path中比较方便。而address.view的用法说明它是从project目录开始找的,所以要把project路径加入sys.path. 如果使用开发服务器,manage.py会自动将project的路径和它的父路径都加入sys.path中,而apache要自已来做。

这里已经说的很清楚了, 开发服务器的manage.py会在背后为你做一些事情, 而apache不会, 所以导致了我碰到的这个问题.

其实修改起来也很简单, 除了把路径加入sys.path之外, 还有一个方法就是在urls.py中, 把调用的方法名写成”项目名+模块名+方法名”的形式.

修改前代码: urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
(r'^$', 'view.index'),
(r'^s/$', 'view.search'),
)

修改后代码: urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
(r'^$', 'djangotest.view.index'),
(r'^s/$', 'djangotest.view.search'),
)


相关日志(Related):

  1. 在Media Temple(dv)上安装配置Django
  2. 在BlueHost上建立Django站点
  3. Editplus 2.30 beta
  4. 被Django折腾
  5. djangobook 第四章中的遗漏

Written by nickcheng

October 16th, 2007 at 5:06 pm

Posted in 俺的技术

Tagged with , , , ,

One Response to 'Django server和Apache下运行Django的细微差别'

Subscribe to comments with RSS or TrackBack to 'Django server和Apache下运行Django的细微差别'.

  1. 你好,我想请教下,该怎么把路径加进sys.path中,还有我的一开始也是这个问题,后来我按照你的方法解决了,但是又出现了TemplateDoesNotExist at / 这个问题,我想还是加进sys.path中比较好。。。
    我在httpd.conf加了下面这样还是不行,求指教。。。

    PythonPath “['/home/Django','/home/Django/project']+sys.path”

    Gothack

    21 Dec 11 at 21:12

Leave a Reply

Switch to our mobile site