什么是Django的admin?

admin是django自带的管理后台系统

生成一个超级管理员

1
python3 manage.py createsuperuser

如何管理表的生成?

需要进入有模型表的项目目录下
找到admin.py
此文件专门用来管理注册你创建模型,并负责模型创建成表格

1
2
3
from app01 import models
# 注册语句
admin.site.register(models.UserInfo)

Django-admin页面

Django-admin 中的字段类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
BooleanField(Field)
- 布尔值类型
NullBooleanField(Field):
- 可以为空的布尔值
CharField(Field)
- 字符类型
- 必须提供max_length参数, max_length表示字符长度
TextField(Field)
- 文本类型
EmailField(CharField):
- 字符串类型,Django Admin以及ModelForm中提供验证机制
IPAddressField(Field)
- 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制
GenericIPAddressField(Field)
- 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6
- 参数:
protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"
unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启刺功能,需要protocol="both"
URLField(CharField)
- 字符串类型,Django Admin以及ModelForm中提供验证 URL
SlugField(CharField)
- 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号)
CommaSeparatedIntegerField(CharField)
- 字符串类型,格式必须为逗号分割的数字
UUIDField(Field)
- 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证
FilePathField(Field)
- 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能
- 参数:
path, 文件夹路径
match=None, 正则匹配
recursive=False, 递归下面的文件夹
allow_files=True, 允许文件
allow_folders=False, 允许文件夹
FileField(Field)
- 字符串,路径保存在数据库,文件上传到指定目录
- 参数:
upload_to = "" 上传文件的保存路径
storage = None 存储组件,默认django.core.files.storage.FileSystemStorage
ImageField(FileField)
- 字符串,路径保存在数据库,文件上传到指定目录
- 参数:
upload_to = "" 上传文件的保存路径
storage = None 存储组件,默认django.core.files.storage.FileSystemStorage
width_field=None, 上传图片的高度保存的数据库字段名(字符串)
height_field=None 上传图片的宽度保存的数据库字段名(字符串)
DateTimeField(DateField)
- 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]
DateField(DateTimeCheckMixin, Field)
- 日期格式 YYYY-MM-DD
TimeField(DateTimeCheckMixin, Field)
- 时间格式 HH:MM[:ss[.uuuuuu]]
DurationField(Field)
- 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型
FloatField(Field)
- 浮点型
DecimalField(Field)
- 10进制小数
- 参数:
max_digits,小数总长度
decimal_places,小数位长度
BinaryField(Field)
- 二进制类型

Django-admin 中的参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
djagno-admin中的参数 :
verbose_name Admin中显示的字段名称

blank Admin中是否允许用户输入为空
editable Admin中是否可以编辑
help_text Admin中该字段的提示信息

choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作
choices = (
(1, '男'),
(2, '女')
)
gender = models.IntegerField(choices=chocies)

id name gender (男女)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
### 在django-admin中生效
test1 = models.EmailField(max_length=32, null=True, verbose_name='邮箱2', blank=True, editable=True, help_text='我是帮助信息')
test2 = models.FileField(null=True)
test3 = models.GenericIPAddressField()
gender_choices = (
(1, '男'),
(2, '女')
)

gender = models.IntegerField(choices=gender_choices)
from django.core.validators import RegexValidator
test3 = models.CharField(
max_length=32,
error_messages={
'c1': '优先错信息1',
'c2': '优先错信息2',
'c3': '优先错信息3',
},
validators=[RegexValidator(regex='root_\d+', message='错误了', code='c1')]
)

以上的参数的限制作用只能在Django-admin界面中插入值是体现出
切勿以为用MySQL或是SQLLite在Pycharm的DataBases/Navicat中插入值 也能达到这种限制效果!!!

Django-admin对插入值的限制
Django-admin对插入值的限制
Django-admin对插入值的限制