Table of Contents
作者的信息
Author查询方法(自动生成 (类名)boot_set)
- author.book_set.all()
- author.book_set.filter()
- author.book_set.create(...) # 创建新书并联作用author
- author.book_set.add(book) # 添加已有的书为当前作者author
- author.book_set.clear() # 删除author所有并联的书
- author.book_set.remove() # 删除所author所有并联的书
Cookie和Session(会话)
-
cookie
- cookies保存在浏览器上,通常用来记录一些简要的信息
- 如果有cookie每次请求会都带着cookie信息
- cookies 在浏览器上是以键-值对的形式进行存储的,键和值都是以ASCII字符串的形存储(不能是中文字符
串) - Django中设置cookie要用HttpResponse对象
- 添加修改cookie
- render()返回的是HttpResponse对象,
- redirect()返回的是HttpResponse对象
- set_cookie(key,value=‘’,max_age=None,expires=None)
- key:cookie 的名字
- value:cookie的值
- max_age:cookie 存活的时间,单位为秒
- expires:具体过期时间 datatime
- 删除cookie
- httpResponse.delete_cookie(key名字)
- 获取cookie
- httpResponse.COOKIES.get(‘key’,“默认值”)
- Session
- session简单特点
- session是保留浏览器和服务器交互时候的数据
- 每个客户端会有一个独立的session
- http协议没有状态,每次请求不会记得之前的状态
- 客户端和服务器的一次通信,就是会话
- 实现状态保存的方式:在客户端和服务器存储会话有关的信息
- 通常在session存具体信息,cookie中存session_id
- Django session 使用前检查
- 1.确定在setting中的INSTALLED_APPS有'django.contrib.sessions',
- 2.MIDDLEWARE中有'django.contrib.sessions.middleware.SessionMiddleware',
- session的基本操作
- session类似一个字典,操作方法大同小异
- session只能存储序列化的数据,如字典列表
- 保存cookie
- request.session[键] = 值
如: request.session['KEY'] = VALUE
- request.session[键] = 值
- 获取session值
- VALUE = request.session['KEY']
或
VALUE = request.session.get('KEY', 缺省值)
- VALUE = request.session['KEY']
- 删除session的值
- del request.session['KEY']
- 在 settings.py 中有关 session 的设置
- SESSION_COOKIE_AGE 作用:指定sessionid在cookies中的保存时长
SESSION_COOKIE_AGE = 60*30 - SESSION_EXPIRE_AT_BROWSER_CLOSE = True 设置只要浏览器关闭时,session就失效
- SESSION_COOKIE_AGE 作用:指定sessionid在cookies中的保存时长
- 注意:使用session时候,需要迁移数据库
- session简单特点
4.扩展延伸知识
-
Django一对一和一对多的实现
- 就是在多对多的字段添加,Unique唯一属性
-
django 多对多查询
- 多相当于一个管理器
- base64
-
python中time使用
-
time模块中表现形式有三种
- timestamp时间戳(1970.1.1 00:00开始计算的秒数)
- struct_time 时间元组 九个元素组
- format time 格式化时间为指定格式
-
时间格式转换图
-
主要生成方法和转换方法
- 时间戳(timestamp) time.time()
- 时间元组(struct_time) time.localtime()
- 可以有一个时间戳参数
- 格式化之后的时间(format time)
- time.strftime("%Y-%m-%d %X")
- https://www.cnblogs.com/tkqasn/p/6001134.html
-
python中datatime使用
- 优势:datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。
- datetime是模块,datetime模块还包含一个datetime类
-
获取当前日期和时间
- datetime.now()
-
获取指定时间
- datetime(2015.4.12.12.20) 2015-04-12 12:12:00
-
时间戳和datetime互相转换
- datetime(生成的对象).timestamp() datetime转时间戳
- datetime.fromtimestamp(时间戳) 时间戳转datetime
-
str转换为datetime
- datetime.strptime(‘2015-2-14 12:12’,%Y-%m-%d %H:%M;%S”)
-
datetime转换为str
- datetime(生成的对象).strftime('%a, %b %d %H:%M')
- https://www.liaoxuefeng.com/wiki/1016959663602400/1017648783851616
-
eval的用法
- 还可以定义数据
6.今天都复习了之前的什么内容
Django一对一和一对多的实现
- 就是在多对多的字段添加,Unique唯一属性
django 多对多查询
- 多相当于一个管理器
python中time使用
-
time模块中表现形式有三种
- timestamp时间戳(1970.1.1 00:00开始计算的秒数)
- struct_time 时间元组 九个元素组
- format time 格式化时间为指定格式
-
时间格式转换图
-
主要生成方法和转换方法
- 时间戳(timestamp) time.time()
- 时间元组(struct_time) time.localtime()
- 可以有一个时间戳参数
- 格式化之后的时间(format time)
- time.strftime("%Y-%m-%d %X")
- https://www.cnblogs.com/tkqasn/p/6001134.html
python中datatime使用
- 优势:datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。
- datetime是模块,datetime模块还包含一个datetime类
-
获取当前日期和时间
- datetime.now()
-
获取指定时间
- datetime(2015.4.12.12.20) 2015-04-12 12:12:00
-
时间戳和datetime互相转换
- datetime(生成的对象).timestamp() datetime转时间戳
- datetime.fromtimestamp(时间戳) 时间戳转datetime
-
str转换为datetime
- datetime.strptime(‘2015-2-14 12:12’,%Y-%m-%d %H:%M;%S”)
-
datetime转换为str
- datetime(生成的对象).strftime('%a, %b %d %H:%M')
- https://www.liaoxuefeng.com/wiki/1016959663602400/1017648783851616
eval的用法
- 还可以定义数据