• 关于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
  • 相关阅读:
    [转]SVN 乱码问题
    [转]自己做 Visual Studio 2013 代码折叠插件
    [Java]一步一步学 Web
    [转]SQL Server 结构读取
    [转][c#]注册表经验集
    [转]加密经验集 => C#
    [转]Oracle 连接dll
    《高效能程序员的修炼》读书笔记
    Blend for Visual Studio 2013
    ASP.NET中服务器控件的生命周期
  • 原文地址:https://www.cnblogs.com/jassin-du/p/8988897.html
Copyright © 2020-2023  润新知