• 5:django 常用函数


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

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

    render

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

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

    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")

    必选参数:

    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_response
    
    def 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()方法来得到url
    def my_view(request):
        ...
        object = MyModel.objects.get(...)
        return redirect(object)
    
    #如果是一个view名字,则会调用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

    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_404
    
    def 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_404
    
    def my_view(request):
        my_objects = get_list_or_404(MyModel, published=True)

    p

  • 相关阅读:
    C++实现希尔排序和快排
    操作系统重点知识汇总
    结构体(对齐规则及举例)
    指针和引用(传指针和传引用)
    数组和指针
    判断一个字符是否为数字的两种方法(C/C++)
    浅谈操作系统栈和堆(区别与联系)
    浅谈malloc/free和new/delete 的区别
    操作符和表达式
    windows重装系统后grub引导菜单修复方法(亲自实验过)
  • 原文地址:https://www.cnblogs.com/qwj-sysu/p/4187020.html
Copyright © 2020-2023  润新知