Django数据库操作

1. ORM框架

  • Django提供的ORM框架,可以简化MySQL代码,节省书写MySQL语句的时间。

    具体功能如下:

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

2. ORM使用

  1. 安装mysql包
    注:Windows系统大概率安装失败,可直接去https://pypi.org/project/mysqlclient下载mysqlclient包,并通过终端输入pip install 包名 进行安装

  2. 进行settings.py数据库配置

    数据库配置
    DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.mysql",
            "NAME": "test", # 数据库名称
            "USER": "root",
            "PASSWORD": "123456",
            "HOST": "127.0.0.1",    # MySQL所属服务器
            "PORT": 3306,
        }
    }
    
  3. 在models.py中创建表

    创建表
    class UserInfo(models.Model):
        name = models.CharField(max_length=32)
        password = models.CharField(max_length=64)
        age = models.IntegerField()
    
    # 上面代码会转化成SQL语句
    """
    create table app01_userinfo(
        id bigint auto_increment primary key,
        name varchar(32),
        password varchar(64),
        age int
    )
    """
    
  4. 操纵表:可以通过注释和添加代码的方式增删表,对表结构进行调整。
    注:如果该表中已有数据,则Django会提供两种方案:1.统一赋一个值;2.自行对表值定义(可设置为空)。

  5. 操作数据

    操作数据
    # 新建数据 
    insert into app01_userinfo(name) values("张三")
    UserInfo.objects.create(name="张三")
    
    注:新建数据可在views视图函数中,也可在models类中添加,对views中新建数据代码进行注释,该新建的数据不会删除。
    删除数据
    UserInfo.objects.filter(id = 3).delete()    # 把表中id为3的数据删除
    UserInfo.objects.all().delete() # 把表中数据全部删除
    
    获取数据
        # ### 3.获取数据 ###
        # data_list = [对象, 对象, 对象] QuerySet类型
        # data_list = UserInfo.objects.all()  # 查询表中所有数据
        # # print(data_list)    # 输出
        # for obj in data_list: # 依次获取
        #     print(obj.id, obj.name, obj.password, obj.age)
    
        # data_list = [对象]
        # data_list = UserInfo.objects.filter(id = 1)   # 过去id为1的数据
        # print(data_list)
        # 获取一条数据【对象】
        row_obj = UserInfo.objects.filter(id = 1).first()
        print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)
    
    更新数据
        # ### 4.更新数据 ###
        UserInfo.objects.all().update(password=999) # 查找表中所有数据,将密码改为999
        UserInfo.objects.filter(id=2).update(age=999) # 查找表中id为2的数据,将其密码改为999
    
    终端启动
    python manage.py makemigrations # 更新表结构
    python manage.py migrate
    
posted @ 2024-11-12 16:52  Coder-Yun  阅读(40)  评论(0)    收藏  举报