django 2.0의 urls.py에서 path () 또는 url ()을 사용하는 것이 더 낫습니까?
django 온라인 코스에서 강사는 url()
함수를 사용하여 뷰를 호출하고 urlpatterns 목록의 정규 표현식을 활용하도록합니다. 나는 이것의 유튜브에서 다른 예를 보았다. 예 :
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"),
]
또한 정규 표현식은를 path()
사용 path(r'^$', views.index, name="index")
하면 mysite.com/polls/
뷰를 찾지 못 하므로 함수 와 함께 작동하지 않는 것 같습니다 .
path()
정규식을 사용 하지 않고 적절한 방식으로 앞으로 사용하고 있습니까? 가 url()
더 강력하지만 사용하고, 그래서 더 복잡 path()
와 함께 우리를 시작? 아니면 다른 작업을위한 다른 도구의 경우입니까?
URL에 대한 Django 문서에서
url(regex, view, kwargs=None, name=None)
이 함수는에 대한 별칭django.urls.re_path()
입니다. 향후 릴리스에서 더 이상 사용되지 않을 수 있습니다.
사이의 키 차이 path
와는 re_path
즉 path
정규식없이 사용 경로
re_path
복잡한 정규식 호출에 사용할 수 있으며 path
더 간단한 조회 에만 사용할 수 있습니다.
새로운 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
의 URLconf는 . 더 많은 것을 읽으 려면 django doc
path
몇 주 전에 출시 된 Django 2.0의 새로운 기능입니다. 대부분의 자습서는 새 구문으로 업데이트되지 않습니다.
확실히 일을하는 더 간단한 방법이어야했습니다. URL이 더 강력하다고는 말할 수 없지만 두 형식 모두 패턴을 표현할 수 있어야합니다.
정규식 path()
은 다음 인수가 있는 함수 에서 작동하지 않는 것 같습니다 path(r'^$', views.index, name="index")
..
다음과 같아야합니다 path('', views.index, name="index")
..
정규식을 입력하려면 첫 번째 인수가 비어 있어야합니다.
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의 함수입니다.
'Programming' 카테고리의 다른 글
상대 가져 오기-ModuleNotFoundError : x라는 모듈이 없습니다. (0) | 2020.08.11 |
---|---|
내 Javascript 파일의 캐싱을 방지하는 방법은 무엇입니까? (0) | 2020.08.11 |
JSX에서 "내보내기 기본값"은 무엇을합니까? (0) | 2020.08.11 |
Xcode 9 Swift 언어 버전 (SWIFT_VERSION) (0) | 2020.08.11 |
virtualenv에서 Pip 설치 Matplotlib 오류 (0) | 2020.08.10 |