Django-网址模式不起作用

时间:2018-08-28 18:06:24

标签: python django url

我昨天开始使用Django,但有一个小错误。我在互联网上搜索,但找不到我的问题的答案。我制作了主应用程序,然后制作了一个小应用程序,并尝试将其链接到主程序。这是我的代码

urls.py

from django.contrib import admin
from django.urls import path, include

ulrpatterns = [
  path('admin/', admin.site.urls),
  path('^$', include('personal.urls'));
]

我的个人网址中

from django.urls import path, include
from . import views

ulrpatterns = [
  path('^$', views.index, name="index");
]

以及我拥有的views.index

def index(request):
    return render(request, 'personal/home.html')

任何帮助都会很棒,谢谢!!!

1 个答案:

答案 0 :(得分:3)

您在这里使用了错误的工具:自起,基本上有两种方法可以指定URL:

  1. 使用re_path [Django-doc]的正则表达式,url [Django-doc]是其“别名”,但最终可能会被弃用;和
  2. 通过对path [Django-doc]使用特定的“路径模式”语法

在这里您以某种方式混合两者,并使用path(..)函数作为“正则表达式指定的” URL。

path用于基于路径模式的URL

我们也可以使用path对其进行修复:

#  urls.py

from django.contrib import admin
from django.urls import path, include

ulrpatterns = [
  path('admin/', admin.site.urls),
  path('', include('personal.urls'));
]

和:

#  personal/urls.py

from django.urls import path, include
from . import views

ulrpatterns = [
  path('', views.index, name="index");
]

re_path用于基于正则表达式的URL

我们也可以改用re_path来解决它:

#  urls.py

from django.contrib import admin
from django.urls import re_path, include

ulrpatterns = [
  re_path('admin/', admin.site.urls),
  re_path('^$', include('personal.urls'));
]

和:

#  personal/urls.py

from django.urls import re_path, include
from . import views

ulrpatterns = [
  re_path('^$', views.index, name="index");
]