ORM类型
ORM即对象关系映射,是一种基于关系型数据库的技术。运行我们使用类和对象操作数据库,提高了对数据库的控制,避免直接使用SQL操作数据库,适配多种常用的关系型数据库,如:MYSQL,Oracle,Sqlite,PostgreSQL等。
Django把表模型定义为Model,继承django.db.models中的Model类。
数据库中的字段类型,Django ORM都有对应的Field来表述。
- AutoFiled 默认自增主键(Primary_key=True),Django默认建立id字段为主键
- CharFiled 字符类型 Max_length=32 字符长度需要明确
- IntgerFiled 整形int
- DateFiled 年月日时间类型 auto_now=True,数据被更新就会更新时间;auto_now_add=True,数据第一次添加时产生。
- DateTimeFiled 年月日小时分钟秒 auto_now=True 数据被更新时就会更新;auto_now_add=True,数据第一次产生时过更新
- DecimalFiled 混合精度的小数类型 Max_digits=3,限定数字的最大位数,decimal_places=2限制小数的位数
- BooleanFiled 布尔类型 对应数据库tinyint类型数据长度只有一位,值为True或False
- TextFiled 用于大文本
在Django中定义数据表
定义数据表
用类来定义数据表
例:
from django.db import models
class Userinfo(models.Model):
name = models.CharFiled(max_length=100)
password = models.CharFiled(max_length=100)
定义了数据表Userinfo,表中有两个字段 name和password
ORM的增删改查(CURD)
用类名来操作:
查询表中所有记录
UserInfo.objects.all()
查询表中name含有j的所有记录
UserInfo.objects.filter(name_contains=‘j’)
有且只有一个查询结果,超出或者没有抛异常
UserInfo.objects.get(name='john‘)
删除名字为john的记录
UserInfo.objects.get(name=“john”).delete()
更新数据表中name为Tom
UserInfo.objects.get(name=“john”).update(name=“Tom”)