bbs
crm
实现自己的组件
上周:
路由系统:url对应视图函数
生命周期:
客户端---》wsgi(socket服务端)---》Django(路由系统---》视图函数---》数据库拿数据/模板里面拿母版渲染文件)
django中没有socket服务端
# django1.7 1.8需要这么写,现在要在templates里面设置dirs
# TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),)
xss攻击:渲染HTML代码,不会以字符串显示
加上 |safe 就会渲染html然后显示
request.path_info 拿到当前页面的url不带参数的
学员管理系统完善
1、分页:
分页原理(*****)
自定义
django内置(并不方便)
面向对象:封装
@property 把类中写方法伪装成属性,即调用的时候不用加()
创建app 创建django时创建或者命令行下django根目录:python manage.py startapp app的名
分页显示最好是7或11,一般是奇数,当前浏览的页面放到中间位置
2、添加编辑后跳转到原页面:
request.GET
3、session(保存在服务端的,类似字典的key是随机字符串,value是用户信息)
cookie--保存在浏览器的键值对
解决明文信息泄露:
- 签名cookie
- session
session:保存在服务器端的键值对(依赖cookie)
(*****)原理:
当用户登陆成功之后,生成session,以键值对的形式存在服务端,key是随机生成的字符串,value是一个字典,存放的是用户相关的信息
然后把session回复到客户端(其实就是写到客户端浏览器的cookie中),客户端能看到的是session的key
创建session保存的表:
python manage.py makemigrations
python manage.py migrate
写数据:
request.session["username"] session默认写到数据库的表中,
django创建表,默认放到db.sqlite3,
获取数据:
request.session.get("username")
删除session:
request.session.delete() -->整条删除
del request.session["password"] -->删除session中的password
session和cookie的区别:
优点:只有一个随机字符串,明文信息并不会显示,并且随机字符窜没有加密,也不能解密
缺点:慢,把用户的所有信息又保存了一份