首页 > 代码库 > django 常用函数

django 常用函数

用django写view函数的时候,我们常常用到django.shortcuts里面的很多常用函数,

这节我们来看看这些函数的具体用法吧

render

render(request, template_name[, dictionary][, context_instance][, content_type][, status][, current_app])

render是渲染的意思,渲染一个页面以返回请求,返回的是一个HttpResponse对象

from django.shortcuts import renderdef my_view(request):    # View code here...    return render(request, myapp/index.html, {"foo": "bar"},        content_type="application/xhtml+xml")

 

必选参数:

request,用来产生请求的对象,必选

template_name,模板全名或者模板名称序列,必选

可选参数:

dictionary,一个包含模板能使用的参数值的字典

context_instance,渲染模板使用的上下文对象,默认是一个RequestContext对象

content_type,指定返回的模板的类型

status,状态码,默认200

current_app,默认的应用名称

是不是有点繁琐了,有点吧,于是乎,render_to_response产生了

render_to_response

render_to_response(template_name[, dictionary][, context_instance][, mimetype])

用给定的上下文对象渲染一个给定的模板然后返回一个HttpResponse对象

from django.shortcuts import render_to_responsedef my_view(request):    # View code here...    return render_to_response(myapp/index.html, {"foo": "bar"},context_instance=RequestContext(request),        mimetype="application/xhtml+xml")

 

参数可选性和render一样,注意的是可选参数context_instance,

当使用上下文处理器的时候,使用RequestContext代替默认的context_instance,如上示例

redirect

redirect(to[permanent=False]*args**kwargs)
返回一个HttpResponseRedirect对象
参数可能是:
1个模型
1个view函数的名字
1个url
#如果是模型,那么会调用该模型的get_absolute_url()方法来得到urldef my_view(request):    ...    object = MyModel.objects.get(...)    return redirect(object)#如果是一个view名字,则会调用reverse()方法来得到urldef my_view(request):    ...    return redirect(some-view-name, foo=bar)#或者一个硬编码的urldef my_view(request):    ...    return redirect(/some/url/)#或者一个完整的urldef my_view(request):    ...    return redirect(http://example.com/)

 

默认redirect返回的是一个临时的重定向,如果需要返回一个永久的重定向,请把permanent参数设为True

get_object_or_404

get_object_or_404(klass*args**kwargs)
获得一个对象或者返回404错误而不是返回DoesNotExist异常

必选参数:klass要求传进来的是一个可以检索到对象的Model,Manager或者Queryset

可选参数:要求是可以被get或者filter接受的查找参数

from django.shortcuts import get_object_or_404def my_view(request):    my_object = get_object_or_404(MyModel, pk=1)

 

get_list_or_404

get_list_or_404(klass*args**kwargs)

给定一个model manager,返回filter的结果,如果结果为空,返回一个Http404的错误

参数要求和get_object_or_404一样

from django.shortcuts import get_list_or_404def my_view(request):    my_objects = get_list_or_404(MyModel, published=True)

 

 

p

django 常用函数