一、数据库操作
安装第三方模块: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 (应用名,选写)
如果想新建其他的表格,在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)