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,表示该字段可以为空

    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()           返回一个装有对象的列表

四. ORM执行原生sql语句

  1. 执行原生sql语句,返回的还是models对象

    objects.raw("select * from table")  返回的是一个类似于queryset的对象

  2. 直接执行自定义sql,返回的结果和mysql的一样

    from django.db import connection ,connections

    cursor = connection.cursor()      和pymsql一样

    cursor.execute(sql语句)

五. 脚本中调用django环境  

import os
if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE","项目名.settings")
    import django
    django.setup()

    from app import models    # 引入
调用配置
原文地址:https://www.cnblogs.com/q767498226/p/10441045.html