django 2.0.5中urls.py中path()的问题

时间:2018-05-20 02:16:02

标签: python django

我正在尝试在urls.py中执行以下操作,但Django 2.0.5似乎不支持url()。而不是它,我使用path()但仍然,它抛出无效的语法错误。 有人可以更清楚地了解path(),因为它似乎不支持正则表达式。

在此处提供代码:

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

from .views import home_page

urlpatterns = [
    path('$', home_page)
    path('admin/', admin.site.urls),
]

4 个答案:

答案 0 :(得分:1)

您错过了,,而$是不必要的

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

from .views import home_page

urlpatterns = [
    path('', home_page),
    path('admin/', admin.site.urls),
]

答案 1 :(得分:1)

如果您更喜欢使用 url 而不是 path ,那将很好用。您只需要从 django.conf.urls 导入即可。因此,您的导入语句应如下所示:

from django.conf.urls import url

Django在其文档页面上说,此功能可能会在以后的版本中不推荐使用,但 re-path 不可用,但是 url 仍然适合我,我m正在运行 Django 2.0.7 ...,因此,我想它也将与您一起使用。我猜正因为如此,在Django 2及更高版本中,它现在决定何时创建样板项目,而不是从 django.conf.urls 导入URL,而是导入 path 来自 django.urls 。 (注意:PATH不允许使用正则表达式)

我通常要做的是创建特定于 app的 urls.py 。在该 urls.py 中,我将从 django.conf.urls 导入 url ,并获取我的特定应用级网址 >在那里:

from django.conf.urls import url
from app_name import views # have to import views

urlpatterns = [
    url(r'^$', views.index),
    url(r'^users$',views.users),
]

然后在项目级别 urls.py 中,我将添加 include 模块,以便可以将其链接到我的特定于应用的 urls.py 文件:

from django.conf.urls import url, include
from django.contrib import admin
from app_name import views

urlpatterns = [
    url(r'^',include('app_name.urls')),
    url(r'^admin/', admin.site.urls),
]

注意:如果您之间有一个单独的文件夹,则文件夹结构看起来像 mainproject> apps> app_name> (settings.py,views.py ,admin.py等...),则必须在apps文件夹中创建 __ init __。py 文件,以便Django可以识别该模块。

答案 2 :(得分:0)

  

Django2 有两个URLconf功能,路径() re_path()

您可以使用带有 re_path()的正则​​表达式路径(基于正则表达式的路径),因此请删除for (Value::ValueIterator car = cars.Begin(); car != cars.End(); ++car) { ParseCar(*car); } 并将for (auto car = cars.Begin(); car != cars.End(); ++car) { ParseCar(*car); } 放在两个连续路径之间。

  

注意:假设您的应用名称是由 python manage.py startapp my_django_app 命令创建的 my_django_app

我创建了一个名为 my_django_app 的新Django应用程序并尝试过,它运行正常。我的 urls.py 文件中包含以下代码。

$
  

参考文献https://docs.djangoproject.com/en/2.0/topics/http/urls/

     

django 2.0 - including urls file from an app to the root urls file

感谢。

答案 3 :(得分:0)

urlpatterns = [
    path('', home_page),
    path('admin/', admin.site.urls)
]

如上面的答案中所述,使用$时不需要path()。由于admin.site.urls)之后的逗号应删除,您收到语法错误。