系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 Django:2.1.4 Python:3.6.0
Part 1:目标
Part 2:数据库创建
blank=True, null=True
是否允许该字段为空或者nullmax_length
允许的最大字符长度,一般与CharField
配合使用default=0.0
字段默认值db_table
设置数据库中表的名字,这是在数据库操作软件(如Workbench)中能看到的名字,但所有对数据库的操作使用的是该Class的名称,注意区别verbose_name
是一个方便理解的名字,在Django的Admin中可以看到,一般仅仅只是方便理解,可以使用中文unique_together
中多个字段联合保持唯一,例如在下面的StudentGrades
类中('class_name', 'student_name', 'exam_info', 'course_name')
保持唯一,意思是不允许存在这四个字段一模一样的两条记录class StudentGrades(models.Model): class_name = models.CharField(blank=True, null=True, max_length=10, verbose_name='班级') student_name = models.CharField(null=False, default='', max_length=10, verbose_name='学生姓名') exam_info = models.CharField(blank=True, null=True, max_length=20, verbose_name='模拟考信息') course_name = models.CharField(blank=True, null=True, max_length=20, verbose_name='科目') grades = models.FloatField(blank=False, null=False, default=0.0, verbose_name="学习成绩")
class Meta: unique_together = ('class_name', 'student_name', 'exam_info', 'course_name') db_table = 'grades_record' verbose_name = "学习成绩记录" verbose_name_plural = verbose_name
Part 3:数据库操作 - 增
StudentGrades
表类名.objects.create(**new_dict_data)
创建一条新的记录,其中new_dict_data为一个字典,字典的键为字典的名字,值为对应字段的取值。也就是说new_dict_data的写法一般如下new_dict_data["field_1"] = value_1new_dict_data["field_2"] = value_2new_dict_data["field_3"] = value_3new_dict_data["field_4"] = value_4new_dict_data["field_5"] = value_5new_dict_data["field_6"] = value_6
**new_dict_data
是一种缩略写法,是Python中一种关键参数的表示方法**kwargs
,如下示例**kwargs
执行结果
Part 4:数据库操作 - 删
表类名.objects.filter(filter_condition).delete()
,其中filter_condition表示拟删除记录的条件,例如student_name="张三"
,即字段student_name中为张三的所有记录