Views
Posted liushoudong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Views相关的知识,希望对你有一定的参考价值。
视图的功能
接受请求,进行处理,与M和T进行交互,返回应答
返回html内容HttpResponse,也可能重定向redirect
视图函数使用
定义视图函数:request参数必须有,是一个HttpRequest类型的对象。参数名可以变化,但不要更改
配置url:建立url和视图函数之间的对应关系
url配置的过程
在项目的urls文件中包含具体应用的urls文件,在具体应用的urls文件中包含具体url和视图的对应关系
url配置项是定义在一个名叫urlpatterns的列表中,其中的每一个元素就是一个配置项,每一个配置项都调用url函数
url匹配的过程
前面的域名和?后面的参数都不会参与匹配
错误视图
404:找不到页面,关闭调试模式之后,默认会显示一个标准的错误页面,如果要显示自定义的页面,则需要templates目录下面自定义一个404.html文件
1.url没有配置
2.url配置错误
500:服务器端的错误
视图出错
网站开发完成需要关闭调试模式,在settings.py文件文件中:
DEBUG=False
ALLOWED_HOST=[‘*‘]
捕获url参数
进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数
1.位置参数:参数名可以任意指定
2.关键字参数:在位置参数的基础上给正则表达式组命名即可
?P<组名> 关键字参数,视图中参数名必须和正则表达式组名一致
登录
request就是HttpResponse类型的对象,request包含浏览器请求的信息
request.POST 保存的是post方式提交的参数 QueryDict
request.GET 保存的是get方式提交的参数
QueryDict里面一个键可以对应多个值
HttpRequest对象
服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以。视图的第一个参数必须是HttpRequest对象,在django.http模块中定义了HttpRequest对象的API
属性
path:返回去除域名和参数的地址
method:返回请求方法
get:QueryDict类型对象,包含get请求方式的所有参数
post:QueryDict类型对象,包含post请求方式的所有参数
FILES:一个类似于字典的对象,包含所有的上传文件
COOKIES:一个标准的python字典,包含所有的cookie,键和值都为字符串
session:一个既可读又可写的类似于字典的对象
ajax请求
ajax:异步的javascript,在不重新加载页面的情况下,对页面进行局部的刷新
js,css,image都是静态文件
发出请求,不等待回调函数执行就往下走,异步
async:False,同步的ajax请求,发出请求后等待回调函数执行才能继续往下执行
ajax登录
不再通过表单提交请求,使用ajax
1.首先分析出请求地址时需要携带的参数
2.视图函数处理完成之后,所返回的json的格式
ajax请求在后台,不要返回页面或者重定向
cookie与session:状态保持
Cookie-->由服务器生成,存储在浏览器端的一小段文本信息
Cookie的特点:
1.以键值对方式进行存储
2.通过浏览器访问一个网站时,会将浏览器存储的跟网站相关的所有cookie信息发送给该网站的服务器 request.COOKIES
3.cookie是基于域名安全的
4.cookie是有过期时间的,如果不指定,默认关闭浏览器之后cookie就会过期
Session
一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django启用会话的支持时才可用
Session存储在服务器端
特点:
以键值对进行存储
依赖于cookie
有过期时间,如果不指定,默认两周
设置session:request.session[‘key’]=val
获取session:request.session.get(‘key‘)
清除session:删除值部分 request.session.clear()
清除session:删除整条数据 request.session.flush()
删除session中的指定键及值:del request.session[‘key‘]
设置会话的超时时间,如果没有指定过期时间则两个星期后过期:request.session.set_expiry(value)
以上是关于Views的主要内容,如果未能解决你的问题,请参考以下文章