我正在尝试在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),
]
答案 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)
之后的逗号应删除,您收到语法错误。