Django的不可预知的行为

我一直试图在Django中做一个简单的应用程序一段时间,我注意到了以下行为:

  1. 每次我在项目文件夹中对urls.py进行更改时,只有在重新启动http守护进程之后才会反映更改。 为什么? 没有这个方法,我有办法吗?

  2. 我尝试将r'^ staff / $'redirect到staff.views.index(员工是我的应用程序名称)。 但访问/工作人员给了我一个“服务器错误”,其中检查error_log显示“TemplateSyntaxError:Caught ImportError渲染时:没有名为职员模块”。 这是什么意思?

从urls.py (并重新启动httpd) 删除该特定的行 ,访问/恢复到“它工作”页面。 但是,当我清除所有浏览数据(包括caching)后刷新页面,我神奇地回到页面说

Using the URLconf defined in myproj.urls, Django tried these URL patterns, in this order: ^staff/$ The current URL, , didn't match any of these. 

这真令我困惑。 怎么可能会回来? 我试图理解发生了什么,但可悲的是,我失败了。 按照这个速度,我可能会回去cakephp。 我不想回去,帮忙!

背景信息:

我在Arch Linux上用mod_wsgi运行Apache。 myproj是我的项目名称(位于/ srv / http-django),它有一个名为staff的应用程序(添加到INSTALLED_APPS)。 我的WSGI脚本将/ srv / http-django添加到sys.path,并将DJANGO_SETTINGS_MODULE设置为myproj.settings。

myproj / staff / views.py包含简单的返回“Hello,World!”的索引函数。 作为HttpResponse

为你的第一个问题阅读:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

对于第二个问题,您可能会遇到sys.path问题,或者更可能是由于命名模块导致的导入顺序依赖性或问题。 如果您使用以下所述的备用WSGI脚本文件很幸运:

http://blog.dscpl.com.au/2010/03/improved-wsgi-script-for-use-with.html

可能会有所帮助,但是可能不会。

如果在守护进程模式下运行mod_wsgi,则可以通过触摸.wsgi文件来更新更改。 (虽然我发现这有点片状)