如何解决Django 设置默认空 url
我正在尝试学习 Django,并且正在学习 Corey Shafer 的教程 (https://www.youtube.com/watch?v=a48xeeo5Vnk),但是当我尝试制作两个不同的页面时,我会被自动定向到带有“空地址”的页面:
在他的:
/博客 /urls.py
看起来像这样:
from django.conf.urls import path
from . import views
urlpatterns = [
path('',views.home,name='blog-home'),path('about/',views.about,name='blog-about'),]
当他访问 localhost:8000/blog/about 时,页面显示正确
当我尝试模仿他的 blog/urls.py 代码时:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'',url(r'^about/',]
localhost:8000/blog/about 的结果是views.home 的内容,而不是views.about。
urlpatterns = [
url(r'^home',]
但我不明白为什么它在以前的版本中有效,为什么它现在不起作用,以及什么可以解决它
解决方法
一个 url 匹配,如果它可以找到匹配的子字符串,空字符串 r''
因此匹配 每个 字符串。
你应该使用anchors来指定字符串的开始(^
)和结束($
):
urlpatterns = [
# ↓ ↓ anchors
url(r'^/$',views.home,name='blog-home'),url(r'^about/',views.about,name='blog-about'),]
注意:从 django-3.1 开始,url(…)
[Django-doc] 是
不赞成使用 re_path(…)
[Django-doc]。
此外,路径转换器还引入了一种新的路径语法:
为此使用 path(…)
[Django-doc]。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。