Django 视图

                                            视图(view)

 一、概述

1.1、作用

接受web请求,并响应web请求。
1.2、本质

视图就是一个python中的函数。大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中。
1.3、过程

二、url配置

2.1、在项目的urls.py文件中,配置一个URL实例的列表。

url匹配正则的注意事项:
如果想要从url中获取一个值,需要对正则加小括号。
匹配正则前方不需要加反斜杠
正则前需要加r表示字符串不转义。
2.2、反向解析URL

本质上就是给url匹配模式起别名,然后用过别名拿到具体的URL路径
1. 怎么起别名?
         在url匹配模式中,定义name="别名"

2. 如何使用?
         1. 在模板语言里面使用:
          {% url "别名" %}  --> 得到具体的URL路径
         2. 在视图中如何使用:
           from django.urls import reverse
           reverse("别名")  --> 得到具体的URL路径

三、视图函数

3.1、本质

一个函数
3.2、视图参数

一个HttpRequest的实例; 通过正则表达式获取的参数
3.3、位置

一般在views.py文件下定义

3.4、错误视图

3.4.1、404视图
找不到网页时返回,可设置settings.py文件中DEBUG为True,则永远不会调用404.html页面
3.4.2、500视图
在视图代码中出现错误(服务器代码)
3.4.3、400视图
错误出现在客户的操作
 

四、基础三件套

1. HttpResponse        --> 返回字符串内容
2. render                     --> 返回一个html页面             
3. redirect                   --> 返回一个重定向(告诉浏览器再去访问另外的网址)

五、Request对象

5..1、概述
        服务器接收http请求后,会根据报文创建HttpRequest对象;
        视图的第一个参数就是HttpRequest对象
        django创建后,之后调用视图时传递给视图
5.2、属性
path : 请求的完整路径(不包括域名和端口)
method: 表示请求的方式,常用的有GET和POST
encoding:表示浏览器提交的数据的编码方式
GET : 类似字典的对象,包含了get请求的所有参数
POST:类似字典的对象,包含了POST请求的所有参数
FILES:类似字典的对象,包含了所有上传的文件
COOKIES:字典,包含所有的cookie
session: 类似字典的对象,表示当前会话
5.3、QueryDicti对象
request对象中的GET,POST 都属于QueryDicti对象。
5.4、GET属性
获取浏览器传递过来的数据
get():根据键获取值,只能获取一个值
getlist():将键的值以列表的形式返回,可以获取多个值
5.5、POST属性
使用表单提交实现POST属性
 

六、Response对象

6.1、概述
作用:给浏览器返回数据
HTTPResponse对象由程序员创建,HttpRequest对象由django创建
6.2返回用法
不调用模板,直接返回数据   return HTTPResponse(‘’)
调用模板,使用render方法
语法:retunr render (request , templateName , context)

作用:结合数据和模板,返回完整的HTML页面

参数:request : 请求体对象

           templateName :模板路径

           context : 传递给需要渲染在模板上的路径

实例: return render ( request , '.HTML' , { 'tmb':'Mingbo is  a  good  man'})

属性
context: 表示返回的内容
charset : 编码格式
status_code : 响应状态码
子类HttpResponseRedirect
功能:重定向,服务器端跳转
简写:redirect
————————————————
版权声明:本文为CSDN博主「__tian__」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/T_I_A_N_/article/details/86157391

原文地址:https://www.cnblogs.com/zxy6/p/11675322.html