Django - render_to_response()

1685 단어
템플릿을 불러오고 context를 채우고 해석된 템플릿 결과를 Http Response 대상으로 되돌려주는 일련의 작업이 너무 자주 사용되기 때문에 Django는 코드 한 줄만으로 모든 작업을 완성할 수 있는 지름길을 제공합니다.이 지름길은django에 위치한다.shortcuts 모듈에서renderto_response()의 함수입니다.대부분의 경우, 당신은render 를 사용할 것이다to_템플릿을 수동으로 로드하거나 Context 및 HttpResponse 객체를 작성하는 대신 response()다음은 Renderto_response() 다시 작성된currentdatetime 예.
from django.shortcuts import render_to_response
     import datetime
    def current_datetime(request):
        now = datetime.datetime.now()
        return render_to_response('current_datetime.html', {'current_date': now})
render_to_response()가 되돌아온 것은 HttpResponse 대상이다.
render 및 renderto_response의 차이
django1.3 시작:render () 방법은renderto_response의 새로운 단축키입니다. 전자는 자동으로 RequestContext를 사용합니다.후자는 반드시 코드를 만들어야 한다. 이것은 가장 뚜렷한 차이이다. 물론 전자는 더욱 간결하다.
return render_to_response('blog_add.html',{'blog': blog, 'form': form, 'id': id, 'tag': tag},
                              context_instance=RequestContext(request))

return render(request, 'blog_add.html', {'blog': blog, 'form': form, 'id': id, 'tag': tag})

locals () 사용법: locals () 는 함수에 있는 모든 변수를 템플릿에 직접 전달할 수 있습니다.물론 이것은 일부 불필요한 파라미터를 전달할 수 있어 메모리를 낭비한 혐의가 있다.
return render(request, 'blog_add.html',locals())

차이2: 데이터를 전달하지 않고 정적 템플릿만 되돌려준다면render는request로 보내야 하고renderto_response는 정적 템플릿으로 전송하기만 하면 됩니다.
def search_form(request):
    return render(request,'app07/search_form.html')   
    return render_to_response('app07/search_form.html')

좋은 웹페이지 즐겨찾기