Django连接MySQL(ORM模块)

1、Django内部提供ORM模块来连接数据库

代码 —————— > ORM———–>pymysql、MySQLdb、mysqlclient———>数据库MySQL

model.xxx.all() ——> 翻译—————-> select * from xxxxx

2、所以需要安装mysqlclient

pip install mysqlclient

3、ORM可以帮我们做两件事:

①创建、修改、删除数据库中的表(不用写SQL语句,无法创建数据库)

②操作表中的数据(不用写SQL语句)

4、所以我们得先创建一个数据库(django_db)

Django连接MySQL(ORM模块)

5、Django连接MySQL。在mysite2/settings.py文件中找到DATABASE,进行下列修改。之后,Django会默认去连接本地的MySQL中的django_db数据库。

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

6、Gjango操作表

①创建表

在app01/models.py文件中添加下列代

class UserInfo(models.Model):
    name = models.CharField(max_length=45)
    password = models.CharField(max_length=45)
    age = models.IntegerField()

Gjango会根据下面的类,翻译成SQL语句,

到指定的数据库中创建一个 “app名_类名” 的表,并且还会自动添加一个主键列(自动增长)

creat table app01_userinfo(

    id bigint auto_increment primary key,

    name varchar(45),

    password varchar(45),

    age int

)

在终端上分别运行下列两行代码(app需要注册,否则无法创建)

python manage.py makemigrations

python manage.py migrate

运行结果:

Django连接MySQL(ORM模块)

Django连接MySQL(ORM模块)

运行结束后可以在MySQL 中查看结果

Django连接MySQL(ORM模块)

其它自动生成的表,都是Django默认注册的表

Django连接MySQL(ORM模块)

如果想新增,就直接添加类,然后再执行那两条命令,就可以自动创建新表了。

②修改表

如果想更改属性(列名),直接在models.py文件中修改其所在的类,修改完后再执行那两条命令就可以了。

如果表中已有数据,但还想修改属性(列名)。先直接修改models.py文件在的类,执行第一条命令时,Django会给出两个选择

Django连接MySQL(ORM模块)

选择第一个后,Django会让我们输入新增属性(列名)的值(整列都会变成输入的值),如下图所示:

Django连接MySQL(ORM模块)

如果选择第二个,Django程序会自动退出,意思时让我们在models.py文件中的类中对属性进行添加默认值。

Django连接MySQL(ORM模块)

例如:

age = models.IntegerField(default=2)

在括号里对两个参数进行赋值,则说明这个属性(列名)可以为空。这个时候如何新加列,就不需要给值了。

null = True , black = True

③删除表

只要把models.py文件中的对应的类删掉,再执行那两条命令,就可以了。

Original: https://blog.csdn.net/qq_41048761/article/details/123444371
Author: LZ_夕阳之后的黑夜
Title: Django连接MySQL(ORM模块)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/733570/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球