django 1.8 공식 문서 번역: 3-1-3 Django의 빠른 함수
8976 단어 django
django.shortcuts
은 다중 MVC를 뛰어넘는 보조 함수와 클래스를 수집했다.다시 말하면 이런 함수/류는 편의를 위해 제어할 수 있는 결합을 도입했다.render
render(request, template_name[, context][, context_instance][, content_type][, status][, current_app][, dirs][, using])[source]
주어진 템플릿과 주어진 상하문 사전을 결합시켜 렌더링된
HttpResponse
대상을 되돌려줍니다.render()
은 RequestContext
을 강제로 사용하는 context_instance
매개 변수로 render_to_response()
을 호출하는 것과 같다.Django는
TemplateResponse
을 되돌려주는 단축 함수를 제공하지 않습니다. 왜냐하면 TemplateResponse
의 구조와 render()
이 제공하는 편리함은 한 차원이기 때문입니다.필수 매개변수
request
응답을 생성하는 데 사용되는 요청 대상입니다.
template_name
사용할 템플릿의 전체 이름 또는 템플릿 이름의 시퀀스입니다.
옵션 매개변수
context
템플릿 상하문에 추가된 사전입니다.기본값은 빈 사전입니다.사전의 값을 호출할 수 있다면, 보기는 템플릿을 렌더링하기 전에 호출합니다.
Django 1.8 :
context dictionary。 Django 1.8 Django 2.0 。
context_instance
템플릿의 컨텍스트 인스턴스를 렌더링합니다.기본적으로 템플릿은
RequestContext
인스턴스(request
및 context
)를 사용하여 렌더링됩니다. 1.8 :
context_instance 。 context。
content_type
생성된 문서에 사용할 MIME 유형입니다.기본값은
DEFAULT_CONTENT_TYPE
으로 설정됩니다.status
응답하는 상태 코드입니다.기본값은 200입니다.
current_app
현재 보기를 포함하는 응용 프로그램을 표시합니다.자세한 내용은 네임스페이스가 있는 URL 확인을 참조하십시오.
1.8 :
current_app 。 request.current_app。
using
템플릿을 로드하는 데 사용되는 템플릿 엔진의 이름입니다.
Changed in Django 1.8:
using 。
Changed in Django 1.7:
dirs 。
Deprecated since version 1.8:
dirs 。
예제
다음 예제에서는 렌더링 템플릿
myapp/index.html
, MIME 유형 application/xhtml+xml
을 보여 줍니다.from django.shortcuts import render
def my_view(request):
# View code here...
return render(request, 'myapp/index.html', {"foo": "bar"},
content_type="application/xhtml+xml")
이 예는 다음과 같습니다.
from django.http import HttpResponse
from django.template import RequestContext, loader
def my_view(request):
# View code here...
t = loader.get_template('myapp/index.html')
c = RequestContext(request, {'foo': 'bar'})
return HttpResponse(t.render(c),
content_type="application/xhtml+xml")
rendertoresponse
render_to_response(template_name[, context][, context_instance][, content_type][, status][, dirs][, using])[source]
주어진 상하문 사전에 따라 주어진 목표를 렌더링하고 렌더링된 HttpResponse를 되돌려줍니다.
필수 매개변수
template_name
사용된 템플릿의 전체 이름 또는 템플릿 이름의 시퀀스입니다.주어진 서열이 있다면, 존재하는 첫 번째 템플릿을 사용합니다.템플릿을 찾는 방법에 대한 더 많은 정보는 템플릿이 불러온 문서를 참고하십시오.
옵션 매개변수
context
템플릿 컨텍스트에 추가된 사전입니다.기본값은 빈 사전입니다.사전의 값을 호출할 수 있다면, 보기는 템플릿을 렌더링하기 전에 호출합니다.
Changed in Django 1.8:
context dictionary。 Django 1.8 Django 2.0 。
context_instance
렌더링 템플릿에 사용되는 컨텍스트 인스턴스입니다.기본적으로 템플릿은
Context
인스턴스(context
)를 렌더링합니다.컨텍스트 프로세서를 사용하려면 RequestContext
실례 렌더링 템플릿을 사용하십시오.당신의 코드는 이렇게 보입니다.return render_to_response('my_template.html',
my_context,
context_instance=RequestContext(request))
1.8 :
context_instance 。 context。
content_type
생성된 문서에 사용되는 MIME 유형입니다.기본값은
DEFAULT_CONTENT_TYPE
으로 설정됩니다.status
상응하는 상태 코드.기본값은 200입니다.
using
템플릿을 로드하는 데 사용되는 템플릿 엔진의 이름입니다.
Changed in Django 1.8:
status using 。
Changed in Django 1.7:
dirs 。
Deprecated since version 1.8:
dirs 。
예제
다음 예제에서는 렌더링 템플릿
myapp/index.html
, MIME 유형 application/xhtml+xml
을 보여 줍니다.from django.shortcuts import render_to_response
def my_view(request):
# View code here...
return render_to_response('myapp/index.html', {"foo": "bar"},
content_type="application/xhtml+xml")
이 예는 다음과 같습니다.
from django.http import HttpResponse
from django.template import Context, loader
def my_view(request):
# View code here...
t = loader.get_template('myapp/index.html')
c = Context({'foo': 'bar'})
return HttpResponse(t.render(c),
content_type="application/xhtml+xml")
redirect
redirect(to, [permanent=False, ]*args, **kwargs)[source]
전달된 매개변수에 대해 올바른 URL에 Http ResponseRedirect를 반환합니다.
매개변수는 다음과 같습니다.
get_absolute_url()
함수 urlresolvers.reverse
을 사용하여 명칭 기본적으로 임시 방향을 되돌려줍니다.전달
permanent=True
은 영구적인 방향을 되돌릴 수 있다.Django 1.7 :
URL 。
예제
너는 여러 방식으로
redirect()
함수를 사용할 수 있다.대상을 전달하기;리디렉션된 URL을 보려면
get_absolute_url()
메서드가 호출됩니다.from django.shortcuts import redirect
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object)
하나의 보기의 이름을 전달함으로써 위치 파라미터와 키워드 파라미터를 가지고 있을 수 있다.
reverse()
메서드를 사용하여 URL을 역해석합니다.def my_view(request):
...
return redirect('some-view-name', foo='bar')
리디렉션할 하드 인코딩 URL을 전달합니다.
def my_view(request):
...
return redirect('/some/url/')
전체 URL은 다음과 같습니다.
def my_view(request):
...
return redirect('http://example.com/')
기본적으로
redirect()
은 임시 방향을 되돌려줍니다.이상의 모든 형식은 permanent
매개 변수를 수신한다.True
으로 설정하면 영구적인 리디렉션이 반환됩니다.def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object, permanent=True)
getobjector_404
get_object_or_404(klass, *args, **kwargs)[source]
주어진 모델 관리자에
get()
을 호출했지만 Http404
이 모델의 DoesNotExist
이 아닌 이상을 일으켰다.필수 매개변수
klass
이 대상의
Model
류, Manager
또는 QuerySet
실례를 얻습니다.**kwargs
조회의 매개 변수는
get()
과 filter()
에서 받아들일 수 있습니다.예제
다음 예제에서는
MyModel
에서 키 1을 사용하여 객체를 가져옵니다.from django.shortcuts import get_object_or_404
def my_view(request):
my_object = get_object_or_404(MyModel, pk=1)
이 예는 다음과 같습니다.
from django.http import Http404
def my_view(request):
try:
my_object = MyModel.objects.get(pk=1)
except MyModel.DoesNotExist:
raise Http404("No MyModel matches the given query.")
가장 흔히 볼 수 있는 용법은
Model
을 전달하는 것이다. 위와 같다.그러나 당신은 QuerySet
의 실례를 전달할 수 있습니다.queryset = Book.objects.filter(title__startswith='M')
get_object_or_404(queryset, pk=1)
위의 예는 다음과 같기 때문에 약간 부자연스럽다.
get_object_or_404(Book, title__startswith='M', pk=1)
하지만 당신의queryset이 다른 곳에서 왔다면 아주 유용할 것입니다.
마지막으로 당신은 관리자를 사용할 수 있습니다.사용자 정의 관리자가 있으면 다음과 같이 유용합니다.
get_object_or_404(Book.dahl_objects, title='Matilda')
연관된 관리자를 사용할 수도 있습니다.
author = Author.objects.get(name='Roald Dahl')
get_object_or_404(author.book_set, title='Matilda')
주: get ()와 마찬가지로 여러 대상을 찾으면
MultipleObjectsReturned
이상을 일으킬 수 있습니다.getlistor_404
get_list_or_404(klass, *args, **kwargs)[source]
주어진 모델 관리자의 Filter () 결과를 되돌려주고 결과를 목록으로 비추며, 결과가 비어 있으면 Http404로 되돌려줍니다.
필수 매개변수
klass
이 목록의
Model
, Manager
또는 QuerySet
실례를 얻습니다.**kwargs
찾은 매개 변수는
get()
과 filter()
에서 받아들일 수 있습니다.예제
다음 예제에서는 게시된 모든 객체를
MyModel
에서 가져옵니다.from django.shortcuts import get_list_or_404
def my_view(request):
my_objects = get_list_or_404(MyModel, published=True)
이 예는 다음과 같습니다.
from django.http import Http404
def my_view(request):
my_objects = list(MyModel.objects.filter(published=True))
if not my_objects:
raise Http404("No MyModel matches the given query.")
번역자: Django 문서 협동 번역팀, 원문: Shortcuts.
본고는 CC BY-NC-SA 3.0 프로토콜로 발표되었으며 전재는 작가의 서명과 글의 출처를 보존해 주십시오.
Django 문서 협동 번역팀은 일손이 부족해서 관심 있는 친구가 우리에 가입할 수 있습니다. 완전 공익적입니다.교류군: 467338606.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.