Django视图函数

谁借莪1个温暖的怀抱¢ 2023-01-14 02:57 360阅读 0赞

目录

  1. 第一个视图函数

1)HttpResponse视图响应类型

2)request视图函数参数

3)return视图响应

  1. 视图函数执行过程

1. 第一个视图函数

在 Django 中,视图函数是一个 Python 函数或者类,开发者主要通过编写视图函数来实现业务逻辑。视图函数首先接受来自浏览器或者客户端的请求,并最终返回响应,视图函数返回的响应可以是 HTML 文件,也可以是 HTTP 协议中的 303 重定向。接下来编写一个简单的视图函数:

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

下面针对后面3 行代码做解析:

1)HttpResponse视图响应类型

从 django.http 模块中导入 HttpResponse,从它简单的名字我们可以得知,它是一种视图的响应类型

HttpResponse对象的属性与方法

2)request视图函数参数

我们定义了一个名为“Hello_my_django”的函数,Django 规定了,视图函数至少有一个参数,第一个参数必须是 request,request 是 HttpRequest 请求类型的对象,它携带了浏览器的请求信息,所以视图函数的第一个参数必须为 request。

render_to_response()使用比较简单,首先导入render_to_response,然后修改如下:

# return render(request, ‘blog.html’, locals()) #修改如下
return render_to_response(‘blog.html’, locals())

用法基本和render是相同的,直观上的区别就在于render_to_response中没有传入request对象。

3)return视图响应

视图函数要返回响应内容,这里的响应内容是我们用 HTML 标签编写的,把它作为 HttpResponse 的对象返回给浏览器。

默认返回一个临时的重定向;传递permanent=True 可以返回一个永久的重定向。

1、传递一个视图的名称

def my_view(request):

return redirect(‘some-view-name’, foo=’bar’)

2、传递要重定向到的一个具体的网址

def my_view(request):

return redirect(‘/some/url/‘)

3、当然也可以是一个完整的网址

def my_view(request):

return redirect(‘http://example.com/‘)


2. 视图函数执行过程

上面视图函数的代码虽然区区几行,但是已经充分体现了视图层的实现过程。

Django 收到请求以后,首先创建一个带有请求信息的 HttpRequset 对象,将 HttpRequest 的对象 request 作为第一个参数传递给视图函数,视图接收参数后继续向下执行,然后选择加载对应的视图,最后返回 HttpResponse 对象给浏览器。

发表评论

表情:
评论列表 (有 0 条评论,360人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Django基础之视图函数

    一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTM