这两天有个比较奇怪了问题困扰着我,就是网页跳转之后页面没有变化,虽然url已经变了,但是页面还是原来的,只是表单数据清空了
就是http://127.0.0.1:8000/signup_signin/sigin这个链接的表单提交后跳到了http://127.0.0.1:8000/signup_signin/sigin_result2.html可是,页面还是那个表单,只是我的输入清空了。开始还以为和我模板命名有关系。
今天发现原来是和urls.py里的正则有关
原来的url匹配是这样:
re_path(r'sigin',views.Signin,name='signin'),
re_path(r'sigin_result2',views.After_Signin,name='After_Signin'),
明明是已经匹配到了第二个,浏览器网址已经变了,但是页面显示的却是sigin.html的模板。后来,我把第一个url匹配改为:
re_path(r'sigin$',views.Signin,name='signin')加了一个结束符号,就能正常调到sigin_result2了。我估计就是,我的sigin.html模板中的表单
<form method="post" action="/signup_signin/sigin_result2.html" >请求这个地址的时候,浏览器的url就改为了http://127.0.0.1:8000/signup_signin/sigin_result2.htmlurl
可是我的re_path当中有这个正则r'sigin'排在前面,而且后面没有结束符号,这样导致re_path匹配到了第一个view方法里,即又回到了第一页。
另外我也尝试了一下,不加$但是交换两个匹配链接,结果也是不能跳到第二页,因此我感觉,这个应该是最小匹配原则,就是匹配到符合条件的最短那个正则。
浙公网安备 33010602011771号