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

django shortcut function的更多相关文章

  1. Django views 中的 shortcut function

    shortcut function都在django.shortcuts这个包中,主要包含有:render(), render_to_response(), redirect(), get_object ...

  2. Request对象和Response对象 JsonResponse对象 和 Django shortcut functions 和QueryDict对象

    request request属性 属性: django将请求报文中的请求行.头部信息.内容主体封装成 HttpRequest 类中的属性. 除了特殊说明的之外,其他均为只读的. ''' 0.Http ...

  3. django view function

    view function 的几种返回值 return HttpResponse(html) return HttpResponseNotFound(html) raise Http404(" ...

  4. Django shortcut functions

    django.shortcuts package提供提供帮助类和函数可以更便捷的操作MVC中的每一部分,包含: render(request, template_name,[dictionary],[ ...

  5. 03 Django之视图函数

    一.Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受WEB请求并返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  6. Django框架详细介绍---视图系统

    Django视图系统 1.什么是视图 在Django中,一个视图函数/类,称为视图.实质就是一个用户自定义的简单函数,用来接收WEB请求并xing响应请求,响应的内容可以是一个HTML文件.重定向.一 ...

  7. Django基础三之视图函数

    一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错 ...

  8. Django全面讲解(2/2)

    前戏 Django是Python语言编写的一个全栈式Web框架(其他的还有Tornado,Flask),可帮助我们快速编写一个具有数据库功能,增删改查.后台管理等功能的网站,若不考虑很高的执行速度,去 ...

  9. Django模板语言与视图(view)

    常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...

随机推荐

  1. Form表单标签的Enctype属性的作用及应用示例介绍

    Enctype :指定将数据回发到服务器时浏览器使用的编码类型.用于表单里有图片上传. 编码类型有以下三种: application/x-www-form-urlencoded: 在发送前编码所有字符 ...

  2. Cross-Browser, Event-based, Element Resize Detection(转)

    DOM Elements! Y U No Resize Event? During your coding adventures, you may have run into occasions wh ...

  3. JSON 新感

    1,如何解析复杂JSON 选择fastJson 用起来简单方便,前提必须是标准的JSON: 例子: paraArray = "[" + paraArray + "]&qu ...

  4. CBCentralManagerDelegate Protocol 委托协议相关分析

    总体概述 CBCentralManagerDelegate 协议中定义了一系列方法列表,这些方法是委托对象必须要实现的方法(也有可选择的),当中央管理器的相应变化就会调用委托对象中实现的相应方法. M ...

  5. 配置siebel捕捉SQL语句

    C:\Siebel\15.0.0.0.0\Client\BIN\siebel.exe /c c:\Siebel\15.0.0.0.0\Client\bin\chs\siebel.cfg /B &quo ...

  6. ubuntu16.04 qt opencv3.4

    #------------------------------------------------- # # Project created by QtCreator 2018-12-12T14:53 ...

  7. Python tkinter 副窗体置顶和取消置顶

    root = Tk() #置顶root.wm_attributes('-topmost',1) #取消置顶 root.wm_attributes('-topmost',0)

  8. [C++] Virtual Destructor(虚析构函数)

    Without Virtual Destructor(虚析构函数) class A{ public: ; A() { cout <<"A()..."<< e ...

  9. gitlab centos 安装配置运维笔记

    写在前面 如果你需要一个git服务器,为企业或自己的团队托管代码而又不希望将代码仓库存储到第三方.你可以在自己的服务器上搭建一个gitlab. 本文为我在最初安装配置gitlab服务器的时候留存的笔记 ...

  10. MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error

    今天购物车突然不能添加了,发现redis报错了,重启了一下好了,一会又报错了. 错误信息: MISCONF Redis is configured to save RDB snapshots, but ...