为什么不调用views方法?

时间:2015-02-25 23:28:10

标签: python django url

我在目录(RazorWare_Web)中有一个urls.py的网络目录,如下所示:

from RazorWare_Web.views import home

urlpatterns = patterns('',
                       url('/', home.index, name="index"),
                       url(r'^razorware/', include("RazorCRM_App.urls")),
                       url(r'^admin/', include(admin.site.urls)),
                       )

因此,在我的浏览器中,http://localhost:8000/razorware导航到home视图的index()方法。我有点困惑。我希望http://localhost:8000/会导航到home。相反,这会产生一个url not found错误页面。

除此之外,当我从HTML页面执行$.getJSON调用时,存在真正的问题(我怀疑它与上述内容有关)。首先,实际应用程序存在于兄弟目录RazorCRM_App下,具有以下内容:

from RazorCRM_App.views import queries

urlpatterns = [
    url(r'query_locale', queries.query_locales, name="query_locales"),
]

当我执行以下脚本时:

function query_locale_by_zip(){
    var post_code = txt_postal.val();
    $.getJSON("query_locale", {post_code: post_code}, function(result){
        console.log("[APP] query locale for: " + post_code + " [returned: " + result.success + "]")
    });
}

...未调用queries.query_locales方法。但是,我从控制台获得以下输出:

  

[25 / Feb / 2015 15:20:51]" GET / razorware / query_locale?post_code = 9   HTTP / 1.1" 200个
  [25 / Feb / 2015 15:20:51]" GET   / razorware / query_locale?post_code = 92 HTTP / 1.1" 200个
  [25 /二月/ 2015   15:20:51]" GET / razorware / query_locale?post_code = 920 HTTP / 1.1" 200个
  [25 / Feb / 2015 15:20:52]" GET   / razorware / query_locale?post_code = 9205 HTTP / 1.1" 200个
  [25 / Feb / 2015 15:20:52]" GET / razorware / query_locale?post_code = 92058   HTTP / 1.1" 200

我可能会理解是否有消息说明无法找到该网址。但这看起来很奇怪。

使用Django版本1.7.1和Python 3.4.2

1 个答案:

答案 0 :(得分:2)

您的根网址应该看起来像url(r'^$', home.index, name="index"),而您的query_locale网址应该看起来像url(r'^query_locale/$', queries.query_locales, name="query_locales")

url dispatcher有关于网址如何运作的广泛文档。