微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django 设置默认空 url

如何解决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'),]

注意:从 开始,url(…) [Django-doc] 是 不赞成使用 re_path(…) [Django-doc]。 此外,路径转换器还引入了一种新的路径语法: 为此使用 path(…) [Django-doc]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。