Django中的ORM模型
通过ORM模型建表前的一些准备工作
1、手动创建数据库
create database 数据库名称
2、在Django项目里的setting.py配置上数据库的相关信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangomy', # 数据库名称
'HOST':'127.0.0.1',
'PORT':3306,
'USER':'xxxx', # 用户名
'PASSWORD':'xxxx' # 密码
}
django模块中创建表
1、创建一个新项目,找到里面的models.py。开始利用ORM模型创建表,
代码示例如下:
from django.db import models
class Essay(models.Model):
# AutoField映射到数据库中是int类型,可以有自动增长的特性
id = models.AutoField(primary_key=True)
# CharField在数据库层面是varchar类型,使用时必须传一个max_length
title = models.CharField(max_length=100)
# TextField大量的文本类型。映射到数据库中是longtext类型。
content = models.TextField()
# 自己定义表名,不用默认的
class Meta:
db_table = "essay"
2、接下来将创建好的表格映射到数据库中:
在虚拟环境中给django发布两条命令:
python3 manage.py makemigrations
python3 manage.py migrate
3、在数据库中建好的表如下图:
表建好后的一些修改
建表完成后,如需修改一些字段:新增的字段需要重新映射到数据库中,
注意:新增字段默认不能为空
一些基础操作方法
对新建好的表执行增、删、改、查的操作:
在views.py中可进行如下操作,代码示例如下:
from django.shortcuts import render
# 导入之前创建的模块
from .models import Essay
# 增加
def add(request):
essay = Essay(title="beng", content="A")
essay.save()
# 删除
def delete(request):
essay =essay.objects.get(pk=5)
essay.delete() # 执行该方法数据库中的数据也一并删除
essay.save()
'''
若想不删除数据库中的数据,在表中添加一个is_delete,并给它附一个默认值
is_delete = models.BooleanField(default=True)
# 执行删除操作
essay =essay.objects.get(pk=5)
essay.is_delete = 0 # 将is_delete值修改为0,在数据库中1则表示数据存在,0不存在
essay.save()
'''
# 修改
def updata(request):
# 修改的第一中方法
essay = Essay.objects.filter().update(title="xxx")
#修改的第二张方法
essay = Essay.objects.get(id=1)
essay.title = "xxx"
essay.save()
# 查找
def find(request):
essay = Essay.objects.all() # 获取全部
essay = Essay.objects.get(条件) # 不满足条件就报错|返回的是一个对象
essay = Essay.objects.filter(条件) # 不满足条件不报错,但是返回的结果是一个对象的列表