어떻게 django로redirect를 실현하는지 몇 가지 방법의 총결을 상세히 설명하다
1. URL에 Redirect 설정to 또는 RedirectView(django 1.3 이상) 2.뷰에서 HttpResponseRedirect를 통해 redirect 3.django의 Redirects app를 이용하여 실현
1 URL에 Redirect 설정to 또는 RedirectView(django 1.3 이상)
from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
(r'^one/$', redirect_to, {'url': '/another/'}),
)
from django.views.generic import RedirectView
urlpatterns = patterns('',
(r'^one/$', RedirectView.as_view(url='/another/')),
)
2.view에서 HttpResponseRedirect를 통해 redirect 구현
from django.http import HttpResponseRedirect
def myview(request):
...
return HttpResponseRedirect("/path/")
3. django의 Redirects app로 구현
1. settings에서.py에'django'추가contrib.redirects'부터 너의 인스타그램까지APPS 설정.2.'django'증가contrib.redirects.middleware.Redirect Fallback Middleware'부터 너의 MIDDLEWARE 까지CLASSES 설정 중.3. 운영 관리자.py syncdb. django 만들기redirect 이 시계는site 를 포함합니다id, old_path and new_path 필드.
주요 작업은 Redirect Fallback Middleware가 완성한 것입니다. 만약django가 404 오류를 발견하면 이때django일치하는 URL이 있는지 redirect에서 찾습니다.일치하는 새 RUL이 비어 있지 않으면 자동으로 새 URL으로 이동하고 새 URL이 비어 있으면 410으로 돌아갑니다.일치하지 않으면 원래의 오류로 되돌아옵니다.
500 오류가 아니라 404 관련 오류만 처리할 수 있으니 주의하십시오.
삭제 추가 djangoredirect표는요?
from django.db import models
from django.contrib.sites.models import Site
from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class Redirect(models.Model):
site = models.ForeignKey(Site)
old_path = models.CharField(_('redirect from'), max_length=200, db_index=True,
help_text=_("This should be an absolute path, excluding the domain name. Example: '/events/search/'."))
new_path = models.CharField(_('redirect to'), max_length=200, blank=True,
help_text=_("This can be either an absolute path (as above) or a full URL starting with 'http://'."))
class Meta:
verbose_name = _('redirect')
verbose_name_plural = _('redirects')
db_table = 'django_redirect'
unique_together=(('site', 'old_path'),)
ordering = ('old_path',)
def __str__(self):
return "%s ---> %s" % (self.old_path, self.new_path)
위와 같은 MODEL을 사용하고 DJANGO 관련 ORM을 사용하면 save, delete를 실현할 수 있습니다.
상기 세 가지 방법은 모두django redirect를 실현할 수 있는데 사실 가장 자주 사용하는 것은 첫 번째와 두 번째, 세 번째 방법은 매우 드물다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.