Python 实训第三天
视图控制器组件中函数的功能.
如果遇到了404的错误, 一定要认真检查所有涉及到的地址
如果遇到500的错误, 一定要认真看错误提示, 具体时在后台程序的哪里出现了问题
Cookie
客户端浏览器上的一个文件, 该文件与服务器本身没有任何关系
cookie的存储方式为: key : value (类似于python的字典类型)
在浏览器中如何查看cookie
如何设置允许cookie/禁用cookie 等等
允许cookie就能享受网站的服务, 但是导致泄露个人隐私
禁用cookie能够保护个人隐私, 但是不能享受网站服务
拓展:
一个浏览器中可以存储多少个站点
一个站点可以存储多少个cookie
一个cookie的大小时多少K
在python中设置cookie的方式:
response对象.set_cookie(key, value[, 相关参数的列表])
max_age: 设置cookie的最大存活时间
expires: 失效时间, 默认为浏览器会话结束
path: 设置cookie的生效路径, 默认为path='/', 表示在站点的任意路径有效
domain: cookie的生效的域名
secure: https传输, 默认值为False
httponly: 只能够用http协议传输, JavaScript无法获取
在python语言从cookie中获取数据的方式
当发生请求的时候,该服务器的cookie会随着request一起进入服务器.
request对象.COOKIES.get(key, 缺省值)
python中对cookie进行加密后发送到浏览器端
加密操作就是为了尽量让数据安全
response对象.set_signed_cookie(key, value, salt='加密字符串')
python中获取加密后的cookie,并且进行解密
request对象.get_signed_cookie(key, salt='机密字符串', 缺省值)
重点注意:
在salt中的值一定要保持一致
Session
Http协议是一个典型的"断开式连接"模式, 因此用户数据在服务器端的保存式无法实现的
session会话是服务器端保存数据的典型应用方式
当客户端与服务器端建立连接后, 服务器会生成一个session会话, 服务器就会为每一个连接的客户端创建一个独立的session, 在服务器中session之间互不干扰
session中的数据可以实现在页面之间的共享
Django中使用session的方式:
django使用数据表来管理session会话.
首先使用命令来创建出管理的数据表
python manage.py makemigrations
python manage.py migrate
django会根据settings.py中的db配置生成sqllite3数据库以及相关的数据表
session的管理信息都存放在django_session表中
session中存储数据的方式为: key:value
存入数据到session中:
request对象.session[key] = value
读取session中的数据:
request对象.session.get(key, 缺省值)
删除session中的数据
del request对象.session[key]
文件上传:
文件上传的核心就是远程数据的传输
是我们讲客户端的文件, 快速的上传到服务器端, 并且持久化的操作
文件上传的时候使用form表单, 该表单中必须使用enctype属性
enctype="multipart/form-data" 保证数据的提交时字节流形式
文件上传的步骤:
step1, 前台页面上传文件
step2, 后台接收客户端发送的请求文件数据
step3, 获取文件上传的相关信息
step4, 设置服务器的上传文件的接收目录,
step5, 使用二进制文件写入的函数实现服务器本地的保存
重点: 接收客户端的请求:
request对象.FILES.get(file控件的名称, 缺省值)