• Python---Models 模型


    #Models  模型

    数据结构 + 算法 = 程序

    ---> URL ---> VIEW ---> Temple --->

    DB:分类---关系

    Teacher   Student

    姓名  年龄  地址  course

    DB

    MongoDB

    Redis

    -------------------------------------

    # Models 模型

    - ORM

      -ObjectRelationMap: 把面向对象思想转换成关系数据库

      * 类对应表格

      * 类中的属性对用表中的字段

      *在应用中的models.py文件中定义class

      *所有需要使用ORM的class都必须是models.Model的子类

      *class中的所有属性对应表格中的字段

      *字段的类型都必须使用 models.xxx 不能使用python中的

      *在django中,Models负责跟数据库交互

    - django链接数据库

      - 自带默认数据库Sqllite3

        - 关系型数据库

        - 轻量级

      - 建议开发用sqlite3,部署用mysql之类数据库

        -  切换数据库在settings中进行设置

          # django 链接 mysql

          DATABASES = [

            'default' = {

              'ENGINE' : 'django.db.backends.mysql',

              'NAME':'数据库名',

              ‘PASSWORD’:'数据库密码',

              ‘HOST’:'127.0.0.1',

              'PORT':'3306',

            }

          ]

        -  需要在项目文件下的__init__文件中导入pymysql包

        # 在主项目文件下的__init__文件中导入pymysql包

          ···

          # 在主项目的__init__文件中

          import pymysql

          pymysql.install_as_MySQLdb()

          ···

    # models类的使用

    - 定义和数据库表映射的类

      - 在应用中的models.py文件中定义class  

      - 所有需要使用ORM的class都必须是models.Model的子类

      -  class中的所有属性对应表格中的字段

      - 字段的类型都必须使用  modles.xxx 不能使用python中的类型

    - 字段常用参数

      1、max_length:规定数值的最大长度

      2、blank:是否允许字段为空,默认不允许

      3、null:在DB中控制是否保存为null,默认为false

      4、default:默认值

      5、unique:唯一

      6、verbose_name:假名

    - 数据库迁移

        1、在命令行中,生成数据迁移的语句(生成sql语句)

          ```

          python3 manage.py makemigrations

          ```

        2、在命令行中,输入数据迁移的指令

          ```

          python manage.py migrate

          ```

          ps:如果迁移中出现没有变化或者报错,可以尝试强制迁移

         

          ···

          # 强制迁移命令

          python3 manage.py makemigrations 应用名

          python3 manage.py migrate 应用名

          ```

    3、对于默认数据库,为了避免出现混乱,如果数据库中没有数据,每次迁移前自带的sqlite3数据库删除

    deactivate

    activate

  • 相关阅读:
    【BZOJ5137】Standing Out from the Herd(后缀自动机)
    【BZOJ1564】【NOI2009】二叉查找树(动态规划)
    仙人掌&圆方树学习笔记
    【CF487E】Tourists(圆方树)
    【BZOJ2125】最短路(仙人掌,圆方树)
    【BZOJ4818】序列计数(动态规划,生成函数)
    【BZOJ1023】仙人掌图(仙人掌,动态规划)
    【BZOJ4316】小C的独立集(仙人掌,动态规划)
    【BZOJ4316】小C的独立集(动态规划)
    【BZOJ3240】【NOI2013】矩阵游戏(数论)
  • 原文地址:https://www.cnblogs.com/niaocaizhou/p/10784625.html
Copyright © 2020-2023  润新知