我有一个url.py文件,如下所示 -
app_name = "fronta"
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'home/', views.index, name='home'),
url(r'lostform/', views.lostform, name='lostform'),
url(r'submitlostform/',views.submitlostform, name="submitlostform"),
]
我为下面的表单设置了操作 -
<form method="post" action="{% url 'fronta:submitlostform'%}">
点击提交按钮后,地址栏中的网址会从http://localhost:8000/fronta/lostform/
更改为http://localhost:8000/fronta/submitlostform/
,但网页不重定向。
但是,如果我更改urls.py文件中的url序列并将url(r'submitlostform/',views.submitlostform, name="submitlostform")
行移动到url顶部,则可以正常工作并重定向页面。或者,如果我将网址格式submitlostform
更改为lostformsubmit
,则此方法也可以。
为什么会这样。我很困惑url模式匹配在这里是如何工作的。如果需要更多信息,请与我们联系。
答案 0 :(得分:1)
正则表达式。
url(r'lostform/', views.lostform, name='lostform'),
这符合lostform/
,但123lostform/
和lostform/123
以及123lostform/321
将其更改为
url(r'^lostform/$', views.lostform, name='lostform'),
^
表示&#34;开始&#34;
$
表示&#34;结束&#34;
相应地更改所有其他网址格式。
顺便说一句,这是第一个网址模式的含义:
url(r'^$', views.index, name='index'),
网址^
的开头,后面没有任何字符,后跟网址的结尾$
。