Django-ORM框架操作数据库进行增删改查
作者:myluzh 分类: Python 长度:2232 阅读:406
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")