Django11
上节回顾:
-数据库操作
-models.py
class Foo:
xx=字段(数据库数据类型)
操作
-增删改查
-filter(),update(),create() 可以关键字参数,也可以字典
-all() values() values_list()
-FK
正向:
filter() values ,values_list -->fk__xxx
objs = all()
for row in objs:
obj.fk.字段
反向:
filter() values ,values_list -->fk__xxx
objs = all()
for obj in objs:
obj.类小写名称_set.all()
-ManyToMany
第三张表自己写, ManyToMany 结合
正向(有MTM)
obj.m.add()
obj.m.remove()
m.set()
m.clear()
m.all()
m.filter()
反向:
obj.表名_set.add
-CSRF: POST时,需要用户携带随机字符
-Form
-{% csrf_token %}
-Ajax
-data
-cookie中获取,添加到请求头 header:{}
-XSS:
-不用safe,不用mark_safe
-过滤关键字
-Cookie
-放在用户浏览器端的键值对
-可以放很多,但对于敏感信息不放。
*********************************************补充*********************************
创建超级用户:python manage.py create superusr
在app01中的admin.py注册那个model
from app01 import models
admin.site register(models.UserInfor)
字符串类(做一些正则表达式验证,给admin验证的):
字段的类型
数据库中还是字符串
EmailField(CharField):
IPAddressField(Field)
URLField(CharField)
UUIDField(Field)
FileField(Field)
FilePathField(Field)
ImageField(FileField)
SlugField(CharField)
CommaSeparatedIntegerField(CharField)
a.这些字段,在我们自己直接通过
models.UserIfo.objects.create(....)毫无影响
--ModelForm(之后可能可盈应用的模块)
b.影响Django自带的管理工具admin
时间类型
DateTimeField(DateField)
- 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]
DateField(DateTimeCheckMixin, Field)
- 日期格式 YYYY-MM-DD
数字类型
IntegerField(Field)
FloatField(Field)
DecimalField(Field)
max_digits,小数总长度
decimal_places,小数位长度
枚举(django)
color_list = ((1,'黑色'),(2,'白色'),(3,'蓝色'))
color = models.IntegerField(choices=color_list)
1.自己操作:
自己取,自己用
2.给django admin使用
应用场景:选项固定
PS:FK选项动态
字段的参数
max_length = 32
primary_key = True
null=True
default='1111'
db_index=True
unique=True
unique_for_date 对于时间的索引
class Meta():
联合唯一索引
unique_together = [('b','g'),]
联合索引
index_together=(('email','ctime'),)
django admin
的参数
考虑django admin
字段:
做正则验证
邮箱,IP,URL,
参数:
blank
error_message{}
validators={
自定义正则
}
今日内容
1.模板
2.中间件
3.Session
1.模板
-母板 一个子板只能继承一个母板,整个页面去继承
-include 小组件,导入小组件,在html中写,{%include ‘pub.html’%}
include,extence 再找到模板。渲染之前,先找到相关联的模板,组件进行替换。再进行渲染。
-函数 --》自动执行 {% for row in userinfo.values%} userinfo.keys 但是没有参数
-模板自定义函数:
-simple_filter 在模板中是前后写的,的函数最多传入两个参数,并且在html中不能有空格
优势:他可以作为条件语句放到html模板中渲染 {{第一个参数|函数名称:‘第二个参数’}}
-simple_tag
-无限制:{% 函数名 参数 参数%}中间空格隔开 应用:之前讲的反向生成URL
2.Session
cookie是什么
保存在客户端浏览器上的键值对
session是什么
保存在服务器端的数据(本质是键值对)
应用:依赖cookie
作用:保持会话(web网站)
好处:敏感信息不会直接给客户
1生成随机字符串 (随机字符串是用户的唯一标识)
2.通过cookie发送给客户端
3.服务端保存
{随机字符串:{‘username’,'castiel','email':'xxx'}}
requset.session['username'] = 'castiel'
1.获取客户端cookie中的随机字符串
2去session中查找有没有随机字符串
3.取session对用的key的values中查看是否有username
request.session.get('username')
session使用以及配置
http://www.cnblogs.com/wupeiqi/articles/5246483.html
session数据源配置
梳理:
1.保存在服务器端的数据(本质是键值对)
2.配置文件中:
-存储位置
-超时时间,每次刷新跟新时间
3.
request.session
-增删改
-获取随机字符串
-主动设置超时时间。
今日作业:相亲网
1.登录,基于session,装饰器
posted on 2018-09-07 17:27 castiel_lee 阅读(76) 评论(0) 收藏 举报
浙公网安备 33010602011771号