• 关于Django的core first 、db first


    db first

    根据数据库的表生成类
    django :
    python manage.py inspectdb

    code first

    根据类创建数据库表;
    django:
    python manage.py makemigrations
    python manage.py migrate

    配置数据库

    setting.py

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'sqldb01',
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }

    关于db first(反向生成)

    先在数据库创建表

    CREATE TABLE users(
             name      VARCHAR(32), )
             extra     VARCHAR(16),
    )ENGINE=MyISAM DEFAULT CHARSET=utf8;

    然后执行命令生成model代码

    python3 manage.py inspectdb

    生成的代码model.py如下

    class Users(models.Model):
        name = models.CharField(max_length=32, blank=True, null=True)
        extra = models.CharField(max_length=16, blank=True, null=True)
    
        class Meta:
            managed = False
            db_table = 'users'

    这里面的db_table映射了数据库中的表名。

    可能会报一个错误

    Error loading MySQLdb module: No module named 'MySQLdb'.
    Did you install mysqlclient or MySQL-python?

    只需要安装一下.,再重新运行一下就好了

    pip3 install mysqlclient

    code first(正向生成)

    在app下model.py,写model.py代码即可

    执行命令生成表

    python3 manage.py makemigrations
    python3 manage.py migrate
     
  • 相关阅读:
    第一章计算机系统知识
    Java面试宝典摘抄
    Java的容器类Collection和Map
    log4j.properties 详解与配置步骤(转)
    JSTL中的TLD配置和使用。
    (原创)mybatis学习四,利用mybatis自动创建代码
    C#常用方法
    Spring 3.x jar 包详解 与 依赖关系
    spring mvc JSON实现方式
    Structs2配置文件相关说明
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/10469280.html
Copyright © 2020-2023  润新知