大神们好,我用的是 django1.11 版,看了官方最新教程,推荐用以下这种方法:
在实际运用中,加载模板、传递参数,返回 HttpResponse 对象是一整套再常用不过的操作了,为了节省力气,Django 提供了一个快捷方式:render 函数,一步到位!看如下代码:
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
cOntext= {'latest_question_list': latest_question_list}
return render(request, 'polls/index.html', context)
render()函数的第一个位置参数是请求对象(就是 view 函数的第一个参数),第二个位置参数是模板,还可以有一个可选的第三参数---一个字典,包含需要传递给模板的数据。最后 render 函数返回一个经过字典数据渲染过的模板封装而成的 HttpResponse 对象。
那么问题来了,请问无论是 post 还是 get,都是用这种方法渲染模板吗?我看了其他一些资料有很多不同的方法,例如:
方法 1:
template = get_template('mysite/index.html')
html = template.render(locals())
return HttpResponse(html)
方法 2,如果是 post 方法,则用下面:
template = get_template('posting.html')
request_cOntext= RequestContext(request)
request_context.push(local())
html = template.render(request_context)
return HttpResponse(html)
请问官方推荐的,和方法 1-2 有什么不同?而 get 和 post 方法的模板渲染代码是否不同?是否都可以统一用官方的 render 一步到位的方法???非常感谢!!!!
在实际运用中,加载模板、传递参数,返回 HttpResponse 对象是一整套再常用不过的操作了,为了节省力气,Django 提供了一个快捷方式:render 函数,一步到位!看如下代码:
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
cOntext= {'latest_question_list': latest_question_list}
return render(request, 'polls/index.html', context)
render()函数的第一个位置参数是请求对象(就是 view 函数的第一个参数),第二个位置参数是模板,还可以有一个可选的第三参数---一个字典,包含需要传递给模板的数据。最后 render 函数返回一个经过字典数据渲染过的模板封装而成的 HttpResponse 对象。
那么问题来了,请问无论是 post 还是 get,都是用这种方法渲染模板吗?我看了其他一些资料有很多不同的方法,例如:
方法 1:
template = get_template('mysite/index.html')
html = template.render(locals())
return HttpResponse(html)
方法 2,如果是 post 方法,则用下面:
template = get_template('posting.html')
request_cOntext= RequestContext(request)
request_context.push(local())
html = template.render(request_context)
return HttpResponse(html)
请问官方推荐的,和方法 1-2 有什么不同?而 get 和 post 方法的模板渲染代码是否不同?是否都可以统一用官方的 render 一步到位的方法???非常感谢!!!!
