zoukankan      html  css  js  c++  java
  • django shortcut function

    render()

    render(request, template_name, context=None, content_type=None, status=None, using=None)

    必须参数

    request:视图接受到的request
    
    template_name:模板名称
    

    可选参数

    context:上下文变量
    
    content_type:响应的MIME类型, 默认为DEFAULT_CONTENT_TYPE设置的值
    
    status:响应的状态,默认为200
    
    using:用于加载模板的模板引擎
    

    render_to_response()

    弃用,不需要request参数的render()

    render_to_response(template_name, context=None, content_type=None, status=None, using=None)

    redirect()

    redirect(to, permanent=False, *args, **kwargs)

    将HttpResponseRedirect返回给传递的参数的适当URL。

    参数可能是

    1. a Model,模型的get_absolute_url()方法将被调用
    2. a view name,可能带有参数:reverse()将用于反向解析名称。
    3. 绝对URL和相对URL

    默认情况下发出临时重定向;传递permanent=True发出永久重定向。

    Examples

    (1). a Model example

    from django.shortcuts import redirect
    
    def my_view(request):
        ...
        obj = MyModel.objects.get(...)
        return redirect(obj)
    

    (2). a view name example

    通过传递视图的名称和一些位置或关键字参数(可选);URL将使用reverse()方法反向解析
    
    def my_view(request):
    ...
    return redirect('some-view-name', foo='bar')
    

    (3). An absolute or relative URL example

    通过传递一个硬编码URL重定向到
    
    def my_view(request):
        ...
        return redirect('/some/url/')
    
    # 也可以写成全路径
    
    def my_view(request):
    	...
    	return redirect('https://example.com/')
    

    get_object_or_404()

    调用get()方法 当没有查找到对象时抛出http404异常

    from django.shortcuts import get_object_or_404 
    product = get_object_or_404(Product, pk=1)
    

    相当与以下代码

    from django.http import Http404
    
    try:
        product = Product.objects.get(pk=1)
    except MyModel.DoesNotExist:
        raise Http404 
    

    get_object_or_404(klass, *args, **kwargs)

    参数:

    klass:用于获取对象的Model,Manage,Queryset实例
    
    **kwargs:用于get()和filter()查询的条件参数
    

    接收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)
    

    接收自定义Managers

    get_object_or_404(Book.dahl_objects, title='Matilda')
    

    接收related Managers

    author = Author.objects.get(name='Roald Dahl')
    get_object_or_404(author.book_set, title='Matilda')
    

    get_list_or_404()

    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.")
  • 相关阅读:
    【python】新创建一个列表,并向内添加元素 and 列表中查询最大值位置和最小值位置
    【python】python从命令行读入参数
    【开发环境安装笔记 】微软Visual Studio2012中文旗舰版(完美破解版)
    【Python笔记】Python读取word文本操作详解
    【安装---WIN7--cnpm】win7实测安装npm,cnpm
    【安装---WIN7--Vuejs】Vue.js 安装及其环境搭建
    【安装---WIN7--nodejs】win7安装 nodejs,npm
    【安装--达梦】Linux(中科方德服务器版4.0)安装达梦数据库V8
    【安装—ES】ES数据库安装6.6b版本
    【centos系统--安装--异常】server重装系统后,远程登录提示主机密钥验证失败的解决办法
  • 原文地址:https://www.cnblogs.com/LTEF/p/9736817.html
Copyright © 2011-2022 走看看