创建模型
在应用中的model模块中定义模组,类似于创建数据库中的表结构,其中的数据类型众多,下面举个栗子:
Grades、Students是分别定义的模型,对应的就是数据库中的表
- models.CharField() 字符串类型
- max_lengeh 最大长度,不可省略
- models.IntegerField() int类型
- models.BooleanField() bool类型
- default 默认值
- models.TextField() 文本型
- models.CharField() 字符串类型

数据迁移
- 在django中,如果开发项目数据表比较多,如果使用数据库手动的创建比较费时费力,可以直接使用django中的命令,在数据库中创建定义好的模型。如下,打开命令行,切到项目文件中,使用以下命令创建迁移文件,由于我的迁移文件已经存在,所以返回如下提示。

- 迁移文件,migrations文件夹便是使用cmd创建的文件

- 其中0001_initial.py中包含一些代码,如下,便是我创建的两个模组,到这一步仅仅是创建了模型,此时数据库中并没有创建表

- 使用如下命令即可完成数据迁移,在数据库中就可以看到创建的数据表了


配置语言和时区
- 如果不配置语言和时区则网站显示的是英文和国外时间

启动服务
- runserver启动的是轻量级web服务器,用于测试

- 使用浏览器打开连接http://127.0.0.1:8000/admin/
注册模型
- 想要通过浏览器对后台数据进行可视化管理,需要将应用中对应的模型进行注册

- 刷新浏览器

- 点击进入Grades,发现数据不知道是什么
自定义管理页面
from django.contrib import adminfrom .models import Grades,Students# 关联对象,在创建一个班级时可以直接添加几个学生,还可继承admin.StackInlineclass StudentsInfo(admin.TabularInline):# 关联的模型model = Students# 添加的条数extra = 2# 使用装饰器进行注册@admin.register(Grades)class GradesAdmin(admin.ModelAdmin): # 继承于admin.ModelAdmin# 自定义管理页面# 将关联对象添加inlines = [StudentsInfo]# 显示的字段list_display = ['grade', 'date_of_reg', 'students_num', 'master', 'is_delete']# 过滤器字段list_filter = ['grade', 'master']# 每一页的数据条数list_per_page = 5# 搜索字段search_fields = ['grade', 'date_of_reg', 'students_num', 'master', 'is_delete']# 显示字段先后顺序, fieldsets和feilds只能使用一个# fields = ['grade', 'students_num', 'master', 'date_of_reg', 'is_delete']fieldsets = [('name', {'fields': ['grade', 'master']}),('num', {'fields': ['students_num', 'date_of_reg', 'is_delete']})]@admin.register(Students)class StudentsAdmin(admin.ModelAdmin):# 性别布尔值True显示男def show_gender(self):if Students.gender:return "男"else:return "女"list_display = ['s_name', 'student_id', show_gender, 'phone', 'introduce', 'grade']# 按钮位置actions_on_top = Falseactions_on_bottom = True



