- 1.建立auth_user的扩展表
- 2,Django model相关用法
- 3.关于auth模块
- 一、什么是author模块
- 二、auth模块的使用
- 先拿到用户(可以是登录用户,可以现查) user = request.user # 或者 user = authenticate(username=username, password=password) pwd = request.POST.get(‘pwd’) ret = user.check_password(pwd)
- 在网站上线以前,将is_active和is_staff设置为False is_active # 禁止登录网站(用户还存在,封号) is_staff # 是否对网站有管理权限(能不能登录admin) request.user.is_active = False request.user.is_staff = False
:::info 💡 几乎所有网站都有用户这个模块,因此我们需要新建一个用户表,但是我们的第一张表比较特殊,因为Django已经给到我们了,因为有些字段不是我们想要的,因此我们需要对这张表进行扩展。 :::
汇报人:puppet洛洛
日期:2022年5月11日22:22:59
1.建立auth_user的扩展表
Django作为一个已经集成了许多功能的成熟框架,已经为我们建立好了auth_user表,但是里面的字段不多,我们需要的字段可能不在里面,因此我们需要一张满足我们需求的表。
1.1,先读几篇别人已经写好的方案:
文章1:
方法1:OneToOneField
方法2:AbstractUser
方法3:Signal
文章2:
常规扩展法,与上面方法1一致,不过多了一个自动更新功能。
2,Django model相关用法
以下几段转自这位老哥,侵删。
2.1,常用字段
1、AutoField —-自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primarykey=True。
2、CharField —-字符串字段 单行输入,用于较短的字符串,如要保存大量文本, 使用 TextField。必须 max_length 参数,django会根据这个参数在数据库层和校验层限制该字段所允许的最大字符数。
3、BooleanField —-布尔类型=tinyint(1) 不能为空,Blank=True
4、ComaSeparatedIntegerField —-用逗号分割的数字=varchar 继承CharField,所以必须 max_lenght 参数,
5、DateField —-日期类型 date 对于参数,auto_now = True 则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。
6、DateTimeField —-日期类型 datetime 同DateField的参数
7、Decimal —-十进制小数类型 = decimal 必须指定整数位max_digits和小数位decimal_places
8、EmailField —-字符串类型(正则表达式邮箱) =varchar 对字符串进行正则表达式 一个带有检查 Email 合法性的 CharField,不接受 maxlength 参数。
9、FloatField —-浮点类型 = double 浮点型字段。 必须提供两个 参数, 参数描述:
max_digits:总位数(不包括小数点和符号)
decimal_places:小数位数。如:要保存最大值为 999 (小数点后保存2位),你要这样定义字段:FloatField(…,max_digits=5, decimal_places=2),要保存最大值一百万(小数点后保存10位)的话,你要这样定义:FloatField(…,max_digits=19, decimal_places=10)
10、IntegerField —-整形 用于保存一个整数
11、BigIntegerField —-长整形
12、IPAddressField —-字符串类型(ip4正则表达式) 一个字符串形式的 IP 地址, (如 “202.1241.30″)。
13、GenericIPAddressField —-字符串类型(ip4和ip6是可选的) 参数protocol可以是:both、ipv4、ipv6 验证时,会根据设置报错
14、NullBooleanField —-允许为空的布尔类型 类似 BooleanField, 不过允许 NULL 作为其中一个选项。 推荐使用这个字段而不要用 BooleanField 加 null=True 选项。 admin 用一个选择框