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



Answers

새로운 django.urls.path() 함수는 더 간단하고 읽기 쉬운 URL 라우팅 구문을 허용합니다. 예를 들어, 이전 Django의 예제는 다음과 같습니다.

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

다음과 같이 쓸 수 있습니다 :

path('articles/<int:year>/', views.year_archive),

이전 버전의 django.conf.urls.url () 함수는 이제 django.urls.re_path() 로 사용할 수 있습니다. 이전 위치는 구형 호환성을 위해 남아 있으며, 절박한 지원 중단이 필요하지 않습니다. 이전 django.conf.urls.include () 함수는 이제 django.urls 에서 가져올 수 있으므로 django.urls import include , path , re_path를 URLconfs 에서 사용할 수 있습니다.

추가 읽기 django doc

Question

django 온라인 강좌에서 강사는 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 () 함수를 사용할 수 있습니다.




Related