Python_Django 프로젝트 URL 이름:
7768 단어 django 입문
url 이름이 왜 필요합니까?
URL이 자주 바뀌니까.코드에 죽으면 코드를 자주 바꿀 수도 있어요.URL에 이름을 지어주고 나중에 URL을 사용할 때 그의 이름을 사용해서 반전시키면 돼요. URL을 죽일 필요가 없어요.
어떻게 URL에 이름을 지정합니까?
path
함수에서 name
매개 변수를 전달하면 지정할 수 있습니다.예제 코드는 다음과 같습니다.urlpatterns = [
path('',views.index,name='index'),
path('login/',views.login,name='login')
]
네임스페이스 적용:
여러 app 사이에서 같은 이름의 URL이 생길 수 있습니다.이럴 때 URL을 반전할 때 혼동을 피하기 위해 응용 이름 공간을 사용하여 구분할 수 있다.응용 이름 공간을 정의하는 것은 매우 간단합니다.
app
의 urls.py
에서 app_name
라는 변수를 정의하여 이 응용 프로그램의 이름 공간을 지정하면 됩니다.예제 코드는 다음과 같습니다.urlpatterns = [
path('',include('front.urls')),
# app
path('cms1/',include('cms.urls',namespace='cms1')),
path('cms2/',include('cms.urls',namespace='cms2')),
]
앞으로 반전을 할 때는
:url
방식으로 반전을 할 수 있다.예제 코드는 다음과 같습니다.login_url = reverse('front:login')
reverse 반전:
kwargs
파라미터를 revers
함수에 전달할 수 있습니다.예제 코드는 다음과 같습니다. detail_url = reverse('detail',kwargs={"article_id":1,'page':2})
login_url = reverse('login') + "?next=/"
응용(app) 네임스페이스 및 인스턴스 네임스페이스:
하나의 앱으로 여러 개의 실례를 만들 수 있습니다.여러 개의 URL을 사용하여 같은 앱을 비출 수 있습니다.그래서 문제가 생겼어요.앞으로 반전할 때 응용 네임스페이스를 사용하면 혼동이 발생할 수 있다.이 문제를 피하기 위해서우리는 실례 명명 공간을 사용할 수 있다.실례 명명 공간도 매우 간단하다.
include
함수에서 namespace
변수를 전달하면 된다.예제 코드는 다음과 같습니다.urlpatterns = [
path('',include('front.urls')),
# app
path('cms1/',include('cms.urls',namespace='cms1')),
path('cms2/',include('cms.urls',namespace='cms2')),
]
이후 반전을 할 때 실례 명칭 공간에 따라 구체적인 URL을 지정할 수 있다.예제 코드는 다음과 같습니다.
def index(request):
username = request.GET.get("username")
if username:
return HttpResponse('CMS ')
else:
#
current_namespace = request.resolver_match.namespace
return redirect(reverse("%s:login"%current_namespace))
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 2.1.6.학습 초급편(1)django가 설치되었는지 확인하고 터미널에python 관리자를 입력하십시오.py runserver, 정상적으로 볼 수 있습니다: 기본적으로 runserver 명령은 포트 8000에서 내부 IP의 개발 서버를 시작합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.