Django视图函数 谁借莪1个温暖的怀抱¢ 2023-01-14 02:57 173阅读 0赞 **目录** 1. 第一个视图函数 1)HttpResponse视图响应类型 2)request视图函数参数 3)return视图响应 2. 视图函数执行过程 -------------------- ## 1. 第一个视图函数 ## 在 Django 中,视图函数是一个 Python 函数或者类,开发者主要通过编写视图函数来实现业务逻辑。视图函数首先接受来自浏览器或者客户端的请求,并最终返回响应,视图函数返回的响应可以是 HTML 文件,也可以是 HTTP 协议中的 303 重定向。接下来编写一个简单的视图函数: from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 下面针对后面3 行代码做解析: ### 1)HttpResponse视图响应类型 ### 从 django.http 模块中导入 HttpResponse,从它简单的名字我们可以得知,它是一种**视图的响应类型**。 [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 对象给浏览器。 [HttpResponse]: https://blog.csdn.net/weixin_44015669/article/details/115879788
还没有评论,来说两句吧...