django框架的基础知识点《贰》
==================状态保持
-----session
作用:状态保持
与cookie区别:
cookie保存在浏览器中
session:保存在服务器中,即python代码运行的那台电脑
支持配置,可以指定保存的位置
在django中保存方案:
关系型数据库
内存
关系型数据库+内存
非关系型数据库,如redis
在settings.py中进行配置,将session保存到redis中
-------------了解session保存、获取流程
session依赖于cookie
1.在第一次写sessin时,会生成唯一标识
2.将唯一标识作为redis的键
3.将唯一标识存入cookie中
字典在redis中存储的部分:值
唯一标识作为键
将字典加密,作为值保存hello--django
==================类视图
---------代码实现
1.在views.py中定义类,继承自django.views.View
2.定义方法的名称,必须与请求方式小写一致
3.注册路由:类.as_view()
---------为什么要用类视图
1.代码逻辑清晰
2.代码重用
---------里面到底是怎么执行的
1.注册路由:类.as_view()===>view
2.当正则表达式匹配成功后,view函数被执行
3.调用了dispatch函数
4.根据请求方式,从对象中获取函数
5.执行这个函数
---------为类视图添加装饰器
方案一:注册路由时添加装饰器
方案二:@method_decorator(装饰器名称,name='类视图中函数的名称')
class 类(View):
pass
---------功能扩展类Mixin
定义类,只定义一个方法,用于实现一个特定功能,比如实现向表中添加数据
这种类,被称为功能扩展类,命名以Mixin结尾
在python中,一个类可以继承自多个类
class Register(CreateMixin,View):
pass
==================中间件
与flask中的请求勾子函数功能类似
每次请求响应中,都会被执行
---------代码实现
1.在应用中创建middlewares.py文件
2.定义语法与装饰器语法一样
3.在settings.py中注册:
MIDDLEWARE=[....]
---------执行顺序
视图执行前,由上向下执行
视图执行后,由下向上执行
==================模板简介
了解
==================数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': #数据库名称
'HOST':#数据库ip
'PORT':3306,#数据库端口号
'USER':'root',#数据库用户名
'PASSWORD':#数据库密码
}
}
==================定义模型类
模型类----表
类属性----字段
模型类对象--行
模型类对象的属性-某行的单元格
语法:
class 类名称(models.Model):
属性=models.类型(选项)
class Meta:
db_table='表名'
迁移
1.生成迁移文件:python manage.py makemigrations
2.执行迁移文件:python manage.py migrate