#yyds干货盘点#Django 模型层

网友投稿 233 2022-08-30


#yyds干货盘点#Django 模型层

一、ORM简介

MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动

ORM是“对象-关系-映射”的简称

#sql中的表 #创建表: CREATE TABLE employee( id INT PRIMARY KEY auto_increment , name VARCHAR (20), gender BIT default 1, birthday DATA , department VARCHAR (20), salary DECIMAL (8,2) unsigned, ); #sql中的表纪录 #添加一条表纪录: INSERT employee (name,gender,birthday,salary,department) VALUES ("alex",1,"1985-12-12",8000,"保洁部"); #查询一条表纪录: SELECT * FROM employee WHERE age=24; #更新一条表纪录: UPDATE employee SET birthday="1989-10-24" WHERE id=1; #删除一条表纪录: DELETE FROM employee WHERE name="alex" #python的类class Employee(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max_length=32) gender=models.BooleanField() birthday=models.DateField() department=models.CharField(max_length=32) salary=models.DecimalField(max_digits=8,decimal_places=2) #python的类对象 #添加一条表纪录: emp=Employee(name="alex",gender=True,birthday="1985-12-12",epartment="保洁部") emp.save() #查询一条表纪录: Employee.objects.filter(age=24) #更新一条表纪录: Employee.objects.filter(id=1).update(birthday="1989-10-24") #删除一条表纪录: Employee.objects.filter(name="alex").delete()

二、单表操作

创建表

1、创建模型

创建名为app01的app,在app01下的models.py中创建模型

from django.db import models# Create your models here.class Book(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=32) state = models.BooleanField() pub_date = models.DateField() price = models.DecimalField(max_digits=8, decimal_places=2) publish = models.CharField(max_length=32)

2、更多字段和参数

每个字段有一些特有的参数,例如,CharField需要max_length参数来指定VARCHAR数据库字段的大小。还有一些适用于所有字段的通用参数。 这些参数在文档中有详细定义,这里我们只简单介绍一些最常用的:

更多字段:

<1> CharField字符串字段, 用于较短的字符串.CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数. <2> IntegerField#用于保存一个整数. <3> FloatField一个浮点数. 必须 提供两个参数: 参数 描述max_digits 总位数(不包括小数点和符号)decimal_places 小数位数举例来说, 要保存最大值为 999 (小数点后保存2位),你要这样定义字段:models.FloatField(..., max_digits=5, decimal_places=2)要保存最大值一百万(小数点后保存10位)的话,你要这样定义:models.FloatField(..., max_digits=19, decimal_places=10)admin 用一个文本框()表示该字段保存的数据. <4> AutoField一个 IntegerField, 添加记录时它会自动增长. 你通常不需要直接使用这个字段;自定义一个主键:my_id=models.AutoField(primary_key=True)如果你不指定主键的话,系统会自动添加一个主键字段到你的 model. <5> BooleanFieldA true/false field. admin 用 checkbox 来表示此类字段.<6> TextField一个容量很大的文本字段.admin 用一个

暂时没有评论,来抢沙发吧~