Django树莓派部署视图跳转失败求助:switch视图无法跳转至test视图
我帮你排查了代码里的几个关键问题,这应该就是导致跳转失效的核心原因:
1. URL路由匹配顺序错误
你的urls.py里第一个路由是url(r'', views.user_interface, name='interface'),这个正则表达式r''会匹配所有请求路径(因为空字符串是任何URL的前缀),导致后面的switch/和test/路由永远不会被触发——Django是按从上到下的顺序匹配URL的,兜底路由必须放在最后。
修改后的urls.py:
app_name='zuumcoin' urlpatterns = [ url(r'switch/', views.switch, name='switch'), url(r'test/', views.test, name='test'), url(r'', views.user_interface, name='interface'), # 移到最后作为兜底 ]
如果你的Django版本是2.0+,更推荐使用更直观的path语法:
from django.urls import path app_name='zuumcoin' urlpatterns = [ path('switch/', views.switch, name='switch'), path('test/', views.test, name='test'), path('', views.user_interface, name='interface'), ]
2. HTML模板里的URL名称拼写错误+标签语法问题
你在userInterface.html的form标签里写的是{% url 'zuumcoin:swicht' %},这里的swicht是拼写错误(正确是switch),同时action属性的引号也没闭合,正确写法应该是:
<form action="{% url 'zuumcoin:switch' %}" method="POST"> {% csrf_token %} <!-- 你的表单内容 --> </form>
3. 额外验证点
- 确保项目根目录的
urls.py已经正确包含了zuumcoin的路由,比如:from django.conf.urls import include, url urlpatterns = [ url(r'^zuumcoin/', include('zuumcoin.urls')), # 其他项目路由 ] - 树莓派上的Django部署和本地逻辑完全一致,只要依赖安装正确、路由配置没问题,跳转功能不需要额外调整系统配置。
先把这几个问题修复,应该就能正常触发switch视图的跳转逻辑了。
内容的提问来源于stack exchange,提问作者Hung Do
相关产品推荐
相关产品推荐

