zoukankan      html  css  js  c++  java
  • 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    # 引入
    调用配置
  • 相关阅读:
    Note:《Microsoft Windows Workflow Foundation 入门:开发人员演练》
    泛型集合类型,赋予集合业务意义,增强集合的抽象使用
    IIS7.0 for developer
    【代码保留】成对值类(PairCollection和Pair
    《SOA中国路线图》下载
    【代码保留】Quarter类
    复合控件和事件(6)——一点优化
    全方位掌握 NSIS 的使用[转]
    HTML Entities Examples
    如何对Outlook添加右键菜单
  • 原文地址:https://www.cnblogs.com/q767498226/p/10441045.html
Copyright © 2011-2022 走看看