1

urls.py 以前的工作配置:

我没有使用include. 以前,像这样配置项目的 url.py 对我来说非常有效:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),

    url(r'^$', 'projectName.appName.views.view1'),
    url(r'^about/$', 'projectName.appName.views.view2'),
    url(r'^contact/$', 'projectName.give.appName.view3'),
    url(r'^contact/thanks/$', 'projectName.appName.views.view4'),
)

单独项目上 urls.py 的当前配置:

但是,我似乎在另一个项目中面临与此其他配置不一致的结果。

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),

    url(r'^foo/$', 'projectName.appName.views.view1'),
    url(r'^foo/bar1/', 'projectName.appName.views.view2'),
    url(r'^foo/bar2/', 'projectName.appName.views.view3'),
)

怎么了:

例如,当我访问位于 的 URL 时/foo/bar1,它会不一致地将我带到所需的 URL 或加载,/foo/同时仍/foo/bar1显示在浏览器的 URL 栏中。

/foo/bar2/大多数情况下(20 次中有 19 次)404在请求该 URL 时返回 a。否则它会显示/foo/,但原始 URL 仍保留在浏览器中。它看起来如此奇怪和奇怪,这在我之前在 Django 中从未发生过。

如果您注意到缺少$的 's,我通过实验发现这种配置稍微可靠一些。使用$'s,我的所有 URL 最终都会加载/foo/,同时仍会在浏览器中显示请求的 URL。

我想值得一提的是,/foo/并且/foo/bar1/大部分工作正常(但在浏览器中调用 /foo/bar1/ 仍然会加载/foo/而不是每 20 次左右调用 1 次),直到我添加/foo/bar2/.

现在怎么样棕色牛:

我想这与正则表达式有关,但我不确定我应该如何处理正则表达式以使其工作,除了遵循我之前所做的正确但现在无法工作。是的,所以我不知道正则表达式是如何工作的。

如果有人能指出我正确的方向或告诉我哪里可能出错了,那将非常有帮助。谢谢!

其他信息:

我正在 PythonAnywhere 上开发 Python 2.7、Django 1.3.7,而不是本地开发。

4

0 回答 0