在djang中,Url模式匹配比较混乱

2024-09-29 23:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网址.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'%}">

当我单击submit按钮时,地址栏中的url从http://localhost:8000/fronta/lostform/变为http://localhost:8000/fronta/submitlostform/,但页面没有被重定向。你知道吗

但是如果我在网址.py文件并移动URL顶部的url(r'submitlostform/',views.submitlostform, name="submitlostform")行,它就可以工作了,页面也被重定向了。或者,如果我将url表单submitlostform的名称改为lostformsubmit,那么这也行得通。你知道吗

为什么会这样。我很困惑url模式匹配在这里是如何工作的。如果需要更多信息,请告诉我。你知道吗


Tags: 文件namepylocalhosthttpurlhomeindex
1条回答
网友
1楼 · 发布于 2024-09-29 23:24:07

正则表达式。你知道吗

url(r'lostform/', views.lostform, name='lostform'),

它匹配lostform/,但也匹配123lostform/lostform/123123lostform/321

把它改成

url(r'^lostform/$', views.lostform, name='lostform'),
  • ^表示“开始”

  • $表示“结束”

相应地更改所有其他URL模式。你知道吗

顺便说一句,这就是第一个URL模式的含义:

url(r'^$', views.index, name='index'),

URL的开头^,后跟完全没有字符,后跟URL的结尾$。你知道吗

相关问题 更多 >

    热门问题