Django中点击跳转链接后Home模板仅重载,请求排查故障
问题原因与解决办法
嘿,我一眼就瞅出问题出在哪啦!你遇到的点击链接后首页只刷新的情况,完全是Django的URL匹配规则在“捣乱”。
问题根源
在你的urls.py里,第一个URL规则是:
url(r'',views.home,name='home'),
Django的URL匹配是从上到下按顺序匹配的,而且这个正则表达式r''没有结尾的$符号——它会匹配所有以空字符串开头的请求,说白了就是任何请求都会被这个规则先捕获,后面的order/规则根本没机会生效。所以不管你点击什么链接,都会走到home视图,自然就只会刷新首页啦。
解决步骤
只需要修改urls.py里的URL规则,给home的路由加上开头的^和结尾的$,让它只匹配精确的根路径(也就是只有http://localhost:8000/这种路径):
修改后的urls.py代码:
from django.conf.urls import include, url from django.contrib import admin from pizza import views urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^$',views.home,name='home'), # 新增^和$,只匹配根路径 url(r'^order/$',views.order,name='order'), # 建议也加上^和$,规范精确匹配 ]
这样修改后,访问根路径时会加载home页面,点击order a pizza链接访问/order/时,就会正确匹配到order视图,顺利跳转到order页面啦!
内容的提问来源于stack exchange,提问作者zibra22
相关产品推荐
相关产品推荐

