<질문>
간단한 리디렉션 (예 :cflocation
ColdFusion에서 또는header(location:http://)
PHP 용) 장고에서?
<답변1>
간단 해:
from django.http import HttpResponseRedirect
def myview(request):
...
return HttpResponseRedirect("/path/")
더 많은 정보는official Django docs
업데이트 : Django 1.0
Django에서이 작업을 수행하는 더 좋은 방법이 있습니다.generic views
.
예 -
from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
(r'^one/$', redirect_to, {'url': '/another/'}),
#etc...
)
더 있습니다generic views documentation. 크레딧-Carles Barrobés.
업데이트 # 2 : Django 1.3 이상
Django 1.5에서redirect_to더 이상 존재하지 않으며 다음으로 대체되었습니다.RedirectView. 신용Yonatan
from django.views.generic import RedirectView
urlpatterns = patterns('',
(r'^one/$', RedirectView.as_view(url='/another/')),
)
<답변2>
원하는 것에 따라 (즉, 추가 전처리를 원하지 않는 경우), Django 's를 사용하는 것이 더 간단합니다.redirect_to
일반보기 :
from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
(r'^one/$', redirect_to, {'url': '/another/'}),
#etc...
)
보다documentation고급 예를 보려면.
Django 1.3 이상 사용 :
from django.views.generic import RedirectView
urlpatterns = patterns('',
(r'^one/$', RedirectView.as_view(url='/another/')),
)
<답변3>
실제로 각 리디렉션에 대한보기를 갖는 것보다 더 간단한 방법이 있습니다.직접에urls.py
:
from django.http import HttpResponsePermanentRedirect
urlpatterns = patterns(
'',
# ...normal patterns here...
(r'^bad-old-link\.php',
lambda request: HttpResponsePermanentRedirect('/nice-link')),
)
A target can be a callable as well as a string, 이것이 제가 여기서 사용하고있는 것입니다.
<답변4>
Django 1.1 이후로 더 간단한redirect지름길:
from django.shortcuts import redirect
def myview(request):
return redirect('/path')
또한 선택적인 영구 = True 키워드 인수를 사용합니다.
<답변5>
전체 하위 폴더를 리디렉션하려면url
인수RedirectView is actually interpolated에서 다음과 같이 할 수 있습니다.urls.py
:
from django.conf.urls.defaults import url
from django.views.generic import RedirectView
urlpatterns = [
url(r'^old/(?P.*)$', RedirectView.as_view(url='/new_path/%(path)s')),
]
그만큼?P<path>
당신은 캡처에 공급됩니다RedirectView
. 캡처 된이 변수는url
당신이 준 논쟁, 우리에게/new_path/yay/mypath
원래 경로가/old/yay/mypath
.
당신은 또한 할 수 있습니다….as_view(url='…', query_string=True)
쿼리 문자열도 복사하려는 경우.
<답변6>
Django 버전 1.3에서 클래스 기반 접근 방식은 다음과 같습니다.
from django.conf.urls.defaults import patterns, url
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-url/$', RedirectView.as_view(url='/redirect-url/'), name='some_redirect'),
)
이 예제는 urls.py에 있습니다.
<답변7>
조심하세요. 개발 서버에서이 작업을 수행했고 나중에 변경하고 싶었습니다.
변경하려면 캐시를 지워야했습니다. 앞으로 머리가 긁히는 것을 피하기 위해 다음과 같이 일시적으로 만들 수있었습니다.
from django.views.generic import RedirectView
url(r'^source$', RedirectView.as_view(permanent=False,
url='/dest/')),
<답변8>
관리 섹션에서이 작업을 수행 할 수 있습니다. 문서에 설명되어 있습니다.
https://docs.djangoproject.com/en/dev/ref/contrib/redirects/
<답변9>
page_path = urls.py에서 정의
def deletePolls(request):
pollId = deletePool(request.GET['id'])
return HttpResponseRedirect("/page_path/")
<답변10>
이것은 대부분의 django 버전에서 작동하며 1.6.5에서 사용하고 있습니다.
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
urlpatterns = patterns('',
....
url(r'^(?P\d+)/$', lambda x, location_id: HttpResponseRedirect(reverse('dailyreport_location', args=[location_id])), name='location_stats_redirect'),
....
)
이 솔루션에서 하드 코딩 된 URL 대신 URL 패턴의 이름을 계속 사용할 수 있습니다. url의 location_id 매개 변수는 람다 함수로 전달됩니다.
'개발 > Python' 카테고리의 다른 글
파이썬에서 mod b를 계산하는 방법은 무엇입니까? (0) | 2021.01.10 |
---|---|
[파이썬] pip를 사용하여 SciPy 및 NumPy 설치 (0) | 2021.01.10 |
Python에서 파일 잠금 (0) | 2021.01.09 |
[파이썬] 두 개의 Pandas Dataframe 열 사전을 만드는 가장 효율적인 방법은 무엇입니까? (0) | 2021.01.09 |