django的ORM

Posted q767498226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django的ORM相关的知识,希望对你有一定的参考价值。

一.在models.py创建模型

技术图片
class Book(models.Model):        # 表名就是app名_类名
    id = models.AtuoField(primary_key=Ture)
创建模型

  1. 字段

    CharField(max_length=32)    字符串字段,最大32个字符

    IntegerField()          整数

    FloatField(max_digits=8,decimal_places=2)  浮点数总长8位,小数占两位

    AtuoField(primary_key=Ture)   自增字段,并设置为主键

    BooleanField()           布尔值字段

    DateField(atuo_now_add)      日期字段,atuo_now_add是首次创建的时间

    DateFiled(atuo_now)       日期时间字段,atuo_now是每次更新的时间

  2. 参数

    null       如果为ture,将用NULL来储存

    blank    如果为ture,该字段不能为空

    default     字段的默认值,可以是一个值或者可调用对象

    primary_key   设置主键

    unique    如果为ture,该字段的值就是唯一的

    atuo_now   每次更新数据的时间

    atuo_now_add 首次创建数据的时间

二. settings配置

  1. mysql引擎的配置

技术图片
# mysql的配置
DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        USER: "root",             # 连接数据库的用户名
        PASSWORD: "mysql123",     # 连接数据库的密码
        NAME:  "lms",              # 连接的数据库库名
        HOST: "127.0.0.1",        # 连接主机
        PORT: 3306,               # 端口
    }
}

INSTALLED_APPS = [
    app01.apps.App01Config,  #第一种写法
    app01                              # 第二种写法
]
settings.py配置

  2. 导入MySQLdb模块

技术图片
import pymsql
pymysql.install_as_mysqldb()
项目种__init__.py配置

  3. 两条数据库迁移指令

    python manage.py makemigrations    生成记录文件

    python manage.py migrate      创建表,生成表名为 app名_类名(创建模型时的类)

三. ORM的增删改查

  先导入表 from app import models

  models.类名.objects  获取到表对象

  1. 增

    ①models.类名.objects.create(字段)    # 推荐

    ②obj = models.类名(字段)

        obj.save()

  2. 删

    models.类名.objects.filter(id=1).delete()    删除id=1 的那条数据

  3. 改

    models.类名.objects.filter(id=1).update(字段)  更改id=1的那条数据

  4. 查

    models.类名.objects.all()           返回一个装有对象的列表

以上是关于django的ORM的主要内容,如果未能解决你的问题,请参考以下文章

Django orm的使用

Django之ORM操作

Django---ORM操作大全

Django models ORM基础操作--白话聊Django系列

Django之ORM

Django-ORM操作数据库无数据问题