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. WebSocket实践——Java实现WebSocket的两种方式

    什么是 WebSocket? 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信 ...

  2. AngularJS1.6版本中ui-router路由中/#!/的解决方法 - zhuan

    本地编译出的文件可以正常运行,但是服务器编译后到了测试那里路由上就莫名的出现了/#!/,这导致了很多问题. 后来查了下是服务器编译器把AngularJS升级到了1.6版本,而我本地的依旧是1.5. 但 ...

  3. <转>杜绝 Defunct进程 僵尸进程

    http://hanover.iteye.com/blog/881972 在测试基于 DirectFB+Gstreamer 的视频联播系统的一个 Demo 的时候,其中大量使用 system 调用的语 ...

  4. ros ddns

    ROS5X-6X脚本(10-15分钟执行一次) #DDNS本站帐号 :global ddnsuser "用户名" #DDNS本站密码 :global ddnspass " ...

  5. uml 时序图

    1.时序图的概念 时序图定义 : 描述了对象之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间顺序的交互图; 时序图描述的事物: 时序图描述系统中类和类之间的交互, 将这些交互建模成 ...

  6. web前端整套面试题(三)--网易的面试题

    题型分析: 一.选择题部分(30分) 元素出栈可能性 排序方法的优缺点 HTTP请求方法 关系型数据库种类 多线程(进程与线程共享) 计算机网络协议 linux指令 JQuery实现方法 二.编程题( ...

  7. js动态的给json对象添加新的元素

    把{name:"xxx",age:"xxx"}变成{name:"xxx",age:"xxx",value:"x ...

  8. git服务器搭建问题

    CentOS6.5本地搭建. 对于图形化的系统,可以联网,然后CTRL+ALT+F2可以切换到命令行,CTRL+ALT+F1可以切换回桌面图形化. 可以用SSH和FTP来连接服务器和传文件.   (1 ...

  9. 【LA2957 训练指南】运送超级计算机【二分,最大流】

    题意: 宇宙中有n个星球,你的任务是用最短的时间把k个超级计算机从星球S运送到星球T.每个超级计算机需要一整艘飞船来运输.行星之间有m条双向隧道,每条隧道需要一整天的时间来通过,且不能有两艘飞船同时使 ...

  10. 477. Total Hamming Distance总的二进制距离

    [抄题]: The Hamming distance between two integers is the number of positions at which the correspondin ...