• 关于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
     
  • 相关阅读:
    使用Mysql慢查询日志对有效率问题的SQL进行监控
    wampserver3.1.0安装及配置
    Composer
    HTML5 本地存储(Web Storage)
    HTML5 元素拖动
    生成验证码
    git 基础命令
    POI使用流程
    JDK各版本新特性总结
    dubbo+zookeeper项目搭建
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/10469280.html
Copyright © 2020-2023  润新知