ORM

 ORM的两个作用:

   1、创建、修改、删除数据库中的表(不同写SQL,但无法创建数据库,【只能创建数据库中的表)

   2、操作表中的数据(例如insert into update select等)【不同写SQL语句】

  

 

一、创建、修改、删除数据库中的表

第一步:自己创建数据库

  • 启动MySQL服务
  • 自带工具创建数据库 打开SQL,代码如下:【1、mysql -u root -p.
  •                                                                     2 、 show database 
  •                                                                     3、create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;】

第二步:django连接数据库(django连接mysql)

在settings.py文件中进行配置和修改(默认sqlite文件)

 

 

 

 

 新代码:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # django 连接到mysql
        'NAME': 'dbname',  # 数据库名字
        'USER': 'root'#账户名
        'PASSWORD': 'root123'#密码

        'HOST': '127.0.0.1', 或者用local house 默认本机# 数据库安装在哪一台服务器上,哪台机器安装了MySQl
        'PORT''3306',  # 端口
}
}

 

第三步:django操作表
  • 创建表
  • 删除表
  • 修改表

在models.py文件中:

 

from django.db import models


# Create your models here.

class UserInfo(models.Model):  # UserInfo继承models里面的类Model
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()

"""
底层的mysql 语句
create table app01_userinfo(    
    id bigint auto_increment primary key,   
    name varchar(32),
    password varchar(64),
    age int 
)
""

 

 

 

 输入命令将表提交数据库(创建表结构):

python3 manage.py makemigrations       #生成迁移文件  (解释器版本3可省略)

python3 manage.py migrate          #映射迁移文件命令到数据库

注意:app需要提前注册到setting.py中,如图:

 

 

 

 

数据库中 查看表结构的命令 show table;

                   看到表结构 desc app01_userinfo(类名);

                 查看表的数据 select*from app01_department(类名) ;

 

在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据:

  • 1、手动输入一个值
  • 2、设置默认值
  • 3、允许为空
  •  

     再输入命令:,更新数据库中的表结构。

     

二、操作表中的数据

# #########数据库新建数据########
#本质:insert into app01_department(title)value("销售部")【SQL语言】
#Department.objects.create(title="销售部")
#UserInfo.objects.create(name="wupeiqi",password="123",age="19")

在views.py中:
def login (request):

from  app01.models import  Department,(UserInfo)

def orm(request):
    #测试ORM操作表中的数据
    #1、新建数据

Department.objects.create(title="销售部")
Department.objects.create(title="IT部")
Department.objects.create(title="运营部")

UserInfo.objects.create(name="武沛齐",password="123",age=19)
UserInfo.objects.create(name="朱虎飞",password="666",age=29)
UserInfo.objects.create(name="朱虎飞",password="666")    #age就会变成默认值

 return  HttpResponse("成功")

 

#  2、删除数据
 UserInfo.objects.filter(id=3).delete()  #筛选出id=3的数据进行删除.
    Department.objects.all().delete()#删除Department所有的表.
#3、获取数据
 # 3.1获取符合条件的所有数据
    #data_list=[行,行,行]或者[对象,对象,对象]  得到的是一个列表.QuerySet类型
    #通过for循环得到所有数据
#1、
    data_list=UserInfo.objects.all()  #相当于 select*from app01_department(类名)
    print(data_list)
    for obj in data_list:
        print(obj.id,obj.name,obj.password,obj.age)
#2、
    data_list=[对象,]
    data_list=UserInfo.objects.filter(id=1)
    print(data_list)

#3.1 获取第一条数据[对象],得到的就是数据,不需要for循环
    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) 
   UserInfo.objects.filter(id=1).update(age=999)
   UserInfo.objects.filter(name="朱虎飞").update(age=999)

 

posted @ 2022-03-29 18:25  费皿啊  阅读(75)  评论(0)    收藏  举报