Myluzh Blog

Strive to become a dream architect.

Django-ORM框架操作数据库进行增删改查

发布时间: 2023-5-20 文章作者: myluzh 分类名称: Python


0x01 前言
Django操作数据库更简单,因为内部提供了ORM框架。ORM依赖于第三方模块,需要pip进行安装。
pip3 install mysqlclient
ORM可以帮助我们创建、修改、删除数据库中的表(不用写sql语句,无法创建数据库),操作表里面的数据。

如何使用自带工具创建数据库?使用mysql -u root -p 进入mysql后,运行如下命令创建一个DjangoDB的数据库。
create database django DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

0x02 Django链接数据库

1.修改setting.py DATABASES文件,把直接的sqllite配置改成mysql的连接配置。如下:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',  # 默认
                         'NAME': 'django',  # 连接的数据库名称
                         'HOST': '127.0.0.1',  # mysql的ip地址
                         'PORT': 3306,  # mysql的端口
                         'USER': 'root',  # mysql的用户名
                         'PASSWORD': 'root123456', }  # mysql的密码
             }

0x03 Django操作数据库
1.自动创建数据库表
自动创建表,只需要在APP目录下面的models.py下面添加类就可以了。
from django.db import models

class UserInfo(models.Model):
    name = models.CharField(max_Length=32)
    password = models.CharField(max_Length=64)
    age = models.IntegerField()
然后执行以下命令即可创建,同理:如果数据库表不要了的话就把上面的类注释掉,然后再运行下面的命令即可删除表
python3 manage.py makemigrations
python3 manage.py migrate
注意:此操作需要app需要是已经注册状态,就是在setting.py中注册APP才可以。

2.对数据表的增删改查
from app01.models import UserInfo

def orm(request):
    # 添加数据:在UserInfo表中添加一条数据
    UserInfo.objects.create(name="用户1", password="123")

    # 删除数据:删除id为1的这一条数据,filter是筛选
    UserInfo.objects.filter(id=1).delete()
    # 删除数据:把整张表都删除
    UserInfo.objects.filter().all().delete()

    # 查询数据:datalist=[对象,对象,对象] 数据为QuerySet类型
    data_list = UserInfo.objects.all()
    for obj in data_list:
        print(obj.id, obj.name, obj.password)
    # 查询数据:获取一条数据,只有一行数据的情况下直接可以用first拿第一条就不用循环读取了
    data = UserInfo.objects.filter(id=5).first()
    print(data.name, data.password)

    # 更新数据:把所有的password都变成999
    UserInfo.objects.all().update(password=999)
    # 更新数据:把id为8的更新password位888
    UserInfo.objects.filter(id=8).update(password=888)
    return HttpResponse("ok")


标签: django

发表评论