복붙노트

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

PYTHON

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

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 ()를 사용합니다.

from django.urls import path
from . import views

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

경로 (r '^ $', views.index, name = "index")를 사용하면 mysite.com/polls/가 표시되지 않으므로 정규 표현식이 path () 함수와 작동하지 않는 것 같습니다.

정규 표현식없이 올바른 방법으로 경로 ()를 사용하고 있습니까? url ()은 더 강력하지만 더 복잡하여 path ()를 사용하여 우리를 시작합니다. 또는 다른 직업에 대한 다른 도구의 경우입니까?

해결법

  1. ==============================

    1.URL 장고 문서에서

    URL 장고 문서에서

    경로와 re_path 사이의 주요 차이점은 경로가 정규식없이 경로를 사용한다는 것입니다.

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

  2. ==============================

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

    새로운 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에서 가져올 수 있으므로 다음을 사용할 수 있습니다.

    from django.urls import include, path, re_path
    

    URLconfs에서. 추가 정보 django doc을 읽으려면

  3. ==============================

    3.경로는 Django 2.0에서 새롭게 추가 된 것으로, 몇 주 전에 릴리스되었습니다. 대부분의 자습서는 새 구문에 대해 업데이트되지 않았습니다.

    경로는 Django 2.0에서 새롭게 추가 된 것으로, 몇 주 전에 릴리스되었습니다. 대부분의 자습서는 새 구문에 대해 업데이트되지 않았습니다.

    그것은 분명히 일을하는 더 간단한 방법이라고 생각되었습니다. 나는 URL이 더 강력하다고는 말할 수 없지만 두 형식 중 하나로 패턴을 표현할 수 있어야한다.

  4. ==============================

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

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

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

  5. ==============================

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

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

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

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

  6. ==============================

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

    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의 함수입니다.

  7. from https://stackoverflow.com/questions/47947673/is-it-better-to-use-path-or-url-in-urls-py-for-django-2-0 by cc-by-sa and MIT license