Django mysql数据库操作

一、数据库操作

安装第三方模块:pip install mysqlclient

django的ORM可以帮我们做两件事:创建、删除、修改数据库中的表;不用sql语句,无法创建数据库,数据库需要自己创建;第二件事是可以操作表中的数据。

1、创建数据库,启动MySQL服务;

2、Django连接数据库;

在settings.py中修改;设置引擎为mysql数据库;

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dengluceshi', #数据库名字
        'USER':'dengluceshi',
        'PASSWORD':'xxx',
        'HOST':'', #数据库地址
        'PORT':3306,
    }
}

3、Django操作表:在models.py文件中操作

创建表:

from django.db import models

# Create your models here.

class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()
"""
设置了如上的类,Django的底层ORM就会执行如下命令:
create table navigator_userinfo
创建了一个表,名字就是APP的名字+下划线+类名的小写;
还会生成一个ID;

"""

做了如上操作,现在的数据库还是空的,需要执行以下两个命令才能创建成功:

python manage.py makemigrations (应用名,选写)

python manage.py migrate (应用名,选写)

创建完成:
Django mysql数据库操作_第1张图片

 如果想新建其他的表格,在models.py中,新建其他的类,然后重新执行上面的两个命令,就可以了。如果想删除之前创建的表,在models.py中注释掉对应的类,或者删除对应的类,然后在重新执行两个命令,就可以了。

注意:在已经存在的表中新增列,需要给已有数据增加默认值:deaufult=默认值;

size = models.IntegerField(default=0)
#可以设置为空
size = models.IntegerField(null=True,blank=True)

4、操作表中的数据

向表中插入新的数据方法,views.py中操作:

#测试orm
from navigator import models
#第二种导入方式
#from navigator.models import departement,UserInfo
def orm(request):
    # 向表departement中增加数据 等同于如下sql语句:insert into navigator_depaartement(title)values('销售部')
    models.departement.objects.create(title="销售部")
    models.departement.objects.create(title="财务部")
    models.departement.objects.create(title="管理部")
    # 向表UserInfo中增加数据
    models.UserInfo.objects.create(name='lv',password='13e',age=11,size=23)
    return HttpResponse('成功')

删除表中的数据:

 #删除id=3的数据
    departement.objects.filter(id=3).delete()
    #删除全部数据
    departement.objects.all().delete()

获取数据:

   #获取数据
   #获取全部数据,data_list是一个列表,列表中是一个行对象;
    data_list = UserInfo.objects.all()
    for obj in data_list:
        print(obj.name,obj.password,obj.age,obj.size)

    #获取某一行的数据
    row_list = UserInfo.objects.filter(id=1).first()
    print(row_list.name,row_list.password,row_list.age,row_list.size)

更新数据:

  #更新数据
    #更新所有的数据
    UserInfo.objects.all().update(password=999)
    #更新某一个数据
    UserInfo.objects.filter(id=1).update(age=888)

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