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模块)_第1张图片

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模块)_第2张图片

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

Django连接MySQL(ORM模块)_第3张图片

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

 Django连接MySQL(ORM模块)_第4张图片

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

        ②修改表

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

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

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

Django连接MySQL(ORM模块)_第5张图片

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

 例如:

age = models.IntegerField(default=2)

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

null = True , black = True

        ③删除表 

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

 

你可能感兴趣的:(Django,django,mysql,python)