Django -- view(视图)

view(视图)

一个视图函数,或者简短来说叫做视图,是一个简单的Python函数,它接受web请求,并且返回web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你的Python目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了能够把代码放在某个地方,惯例是把视图放在叫做views.py的文件中,然后把它放到你的项目或者应用目录里。

下面是一个返回当前日期和时间作为HTML文档的视图:

1 from django.http import HttpResponse
2 import datetime
3 
4 def current_datetime(request):
5     now = datetime.datetime.now()
6     html = "<html><body>It is now %s.</body></html>" % now
7     return HttpResponse(html)

让我们逐行阅读上面的代码:

  • 首先,我们从 django.http模块导入了HttpResponse类,以及Python的datetime库。
  • 接着,我们定义了current_datetime函数。它是一个视图函数。每个视图函数都应接收HttpRequest对象作为第一个参数,一般叫做request。
  • 注意视图函数的名称并不重要;不需要用一个统一的命名方式来命名,以便让Django识别它。我们将其命名为current_datetime,是因为这个名称能够精确地反映出它的功能。
  • 这个视图会返回一个HttpResponse对象,其中包含生成的响应。每个视图函数都要返回HttpResponse对象

HttpResponse函数:

在views.py里面,我们可以使用HttpResponse直接给页面返回一个字符串。调用HttpResponse直接给页面返回一个字符串。

1 from django.http import HttpResponse
2 
3 def hello(request):    
4 
5 return HttpResponse("Hello World!")

render函数

render 是一个主要用来返回一个html模板页面的函数。

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

此方法的作用是:接收到一个请求,结合一个给定的模板和一个给定的context上下文字典,并返回一个渲染后的 HttpResponse 对象。通俗的讲就是接收到一个请求,然后指定好一个html模板,并把上下文context字典中的内容, 加载进templates_name中指定的模板文件, 并通过浏览器渲染呈现.

 1 request: 是一个固定参数, 就是指通过接受到的通过wsgi处理过的客户端浏览器请求数据。
 2 
 3 template_name:templates中定义的HTML文件, 要注意路径比如'templates\polls\index.html', 参数就要写‘polls\index.html’
 4 
 5 context: 要传入上下文中用于渲染呈现的数据, 默认是一个字典格式,键即下文html模板中需要被替换的元素,键值即在views视图函数中需要传到html模板中变量需要替换成的值。
 6 
 7 content_type: 生成的文档要使用的MIME 类型。默认为DEFAULT_CONTENT_TYPE 设置的值。
 8 
 9 status: http的响应代码,默认是200.
10 
11 using: 用于加载模板使用的模板引擎的名称。
参数详解

redirect 函数

redirect 函数的主要作用是重定向

posted @ 2018-08-11 10:50  苦行僧PH  阅读(192)  评论(0编辑  收藏  举报