python - 차이 - 장고 path




django 2.0에서는 urls.py에서 path() 또는 url()을 사용하는 것이 더 좋습니까? (4)

장고 온라인 과정에서 강사는 url() 함수를 사용하여보기를 호출하고 urlpatterns 목록의 정규식을 사용합니다. 이것에 대한 다른 예제를 YouTube에서 보았습니다. 예

from django.contrib import admin
from django.urls import include
from django.conf.urls import url

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


#and in polls/urls.py

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

그러나 Django 튜토리얼을 진행할 때 대신 path() 를 사용 path() .

from django.urls import path
from . import views

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

path(r'^$', views.index, name="index") 를 사용하면 mysite.com/polls/ 이 보이지 않기 때문에 정규 표현식이 path() 함수와 함께 작동하지 않는 것 같습니다.

정규 표현식없이 올바른 방법으로 path() 를 사용하고 있습니까? url() 더 강력하지만 복잡해 졌기 때문에 path() 를 사용하여 우리를 시작할 수 있습니까? 아니면 다른 직업을위한 다른 도구의 경우입니까?


Path는 Django 2.0의 새로운 기능입니다. 여기에 설명되어 있습니다 : https://docs.djangoproject.com/en/2.0/releases/2.0/#whats-new-2-0

좀 더 파이썬적인 방식으로 보이고, 당신이보기 위해 전달한 인수에서 정규 표현식을 사용하지 못하게 할 수 있습니다 ... 예를 들어 int () 함수를 사용할 수 있습니다.


v2.0에서 많은 사용자가 경로를 사용하지만 경로 또는 URL을 사용할 수 있습니다. 예를 들어 django 2.1.1에서 URL을 통한 함수로의 매핑은 다음과 같이 할 수 있습니다

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

from django.contrib.auth import login
from posts.views import post_home
from django.conf.urls import url

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^posts/$', post_home, name='post_home'),

]

posts는 응용 프로그램이고 post_home은 views.py의 함수입니다.


url 장고 문서에서

url(regex, view, kwargs=None, name=None) 이 함수는 django.urls.re_path() 의 별명입니다. 이후 릴리스에서는 더 이상 사용되지 않을 수 있습니다.

path re_path 주요 차이점은 path 가 정규 표현식을 사용하지 않는 path 사용한다는 것입니다.

복잡한 regex 호출에는 re_path 를 사용할 수 있고보다 간단한 조회에는 path 만 사용할 수 있습니다.


path(r'^$', views.index, name="index") 와 같은 정규 표현식은 path() 함수와 함께 작동하지 않는 것 같습니다.

그것은 다음과 같아야합니다 : path('', views.index, name="index") .

첫 번째 인수는 정규 표현식을 입력 할 때 공백이어야합니다.





django-urls