版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Django简介
Django特点
- 重量级框架
- 提供项目工程管理的自动化脚本工具
- 数据库ORM支持
- 模板
- 表单
- Admin管理站点
- 文件管理
- 认证权限
- session机制
- 缓存
- MVT模式
MVT与MVC的区别
- MVC模式说明
-
M(Model),主要封装对数据层的访问,对数据库的增删改查操作
-
V(View),用于封装结果,生成页面展示的HTML页面
-
C(Controller),用于接收请求,处理业务逻辑,与Model 和View交互,返回结果
-
MVT模式说明
- M(Model),与MVC中M功能相同,负责和数据库交互,进行数据处理
- V(View),与MVC中C功能相同,接受请求,进行业务处理,返回应答
- T(Template),与MVC中V功能相同,负责封装构造要返回的的HTML
**MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接起来,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入并调用模型和视图完成用户的请求。Django的MVT模型本质上和MVC一样,也是为了个组件之间保持松耦合关系,只是定义上有些许不同,Django的MVT分别是指M代表模型(Model)–负责业务对象和数据库的关系映射(ORM);T代表模板(Template)----负责如何把页面展示给用户(html);V代表视图(View)----负责业务逻辑,并在适当的时候调用Model和Template **
Cookie
Cookie的特点
- 以键值对key-value形式进行信息的存储
- 基于域名安全,不同域名的cookie是不能相互访问的
设置Cookie
- 通过响应对象HttpResponse的set_cookie方法来设置cookie
- 响应对象有以下几种
- HttpResponse
- JsonResponse
- Redirect
获取Cookie
- 通过请求对象HttpRequest的COOKIES属性来获取本次请求携带的cookie值,request.COOKIES为字典类型
删除Cookie
- 通过响应对象HttpResponse的delete_cookie方法来删除cookie
# 创建cookie使用响应对象来创建
# 响应对象有:HttpResponse JsonResponse redirect
res = HttpResponse('cookie')
# 设置cookie,第一个参数为key,第二个为value,第三个为过期时间(秒)
res.set_cookie('username', 'xiaowang', 10)
# 获得cookie,通过请求对象的request对象的COOKIES属性
cookie = request.COOKIES.get('username')
print(cookie)
# 使用响应对象的delete_cookie()来删除cookie
res.delete_cookie('username')
return res
Cookie工作原理
Session
作用
- 在服务器上保存用户的状态信息供在任何时间从任何设备上的页面进行访问.就是保存会话状态
特点
- 依赖于cookies
- 存储敏感、重要的信息
- 支持更多字节
- Session共享问题
session操作
-
通过请求对象HttpRequest对象的session属性进行会话的读写操作
-
以键值对的格式设置session
request.session['键']=值 # request.session['key']=value request.session['name'] = "laowang"
-
根据键来获取session值
request.session.get('键',默认值)
-
获取session,使用请求对象request.session.get()方法
session = request.session.get('name') print(session)
-
清除所有session,在存储中删除值部分
request.session.clear()
-
清除session数据,在存储中删除session的整条数据
# 删除整个session对象,使用request.session.flush()方法 request.session.flush()
-
清除session中指定键与值,在存储中只上传某个键对应的值
del request.session['键'] # 删除单个session,使用请求对象的 del request.session['key'] # del request.session['name']
-
设置session的有效期
request.session.set_expiry(value) # 设置有效时间 request.session.set_expiry(15)
- 如果value是一个整数,session将在value秒没有活动后过期
- 如果value为0,那么用户session的cookie将在浏览器关闭是过期
- 若干value为None,那么session过去时间将采用系统默认值,默认为两周,可以通过session.py中设置SESSION_COOKIE_AGE来设置全局默认值