ORM
-
将
ORM
模型映射到数据库中的步骤如下: -
在
settings.py
中的DATABASES
配置好数据库 -
确保app已安装(
INSTALLED APPS
) -
在app的
models.py
中定义好模型,该模型(类)必须继承于models.MODEL
from django.db import models # Create your models here. class Book(models.Model): # 设置主键 id = models.AutoField(primary_key=True) # null=False 表示不为空,其实是默认的 name = models.CharField(max_length=100, null=False) author = models.CharField(max_length=100, null=False) price = models.FloatField(null=False, default=0.0) def __str__(self): # 打印实例时返回友好显示 return "<Book:({name}, {author}, {price})>".format(name=self.name, author=self.author, price=self.price) class Sub(models.Model): # 如果没有设置主键,会默认给一个int类型的主键id,自增长 name = models.CharField(max_length=100, null=False)
-
在命令行终端,切换到项目所在路径
- 键入
python manage.py makemigrations
生成迁移路径 - 键入·
python manage.py migrate
将迁移脚本映射到数据库中
- 键入
-
如果一个模型没有定义主键,那么将会自动生成一个自动增长的
int
类型的主键,名字为id
增删查改
添加数据
- 使用
ORM
模型创建一个实例化对象,再调用对象的save()
方法保存
查找数据
- 查找工作使用模型的
objects
对象。可以自定义查询对象。- 根据主键查询。使用
实例化对象.object.get(pk=xxx)
- 根据其他字段进行查找。使用
object.filter(command)
- 根据主键查询。使用
删除数据
- 查找到该数据模型后,执行
实例化对象.delete()
修改数据
- 查找到该数据模型后,修改模型上属性的值后,执行
save()
实例
from django.shortcuts import render, HttpResponse
from .models import Book # 从当前models.py导入Book类型
# Create your views here.
def db_operation(request):
# 增加一行
book = Book(name="deep", author='van', price=234)
book.save()
book = Book(name="dark", author='no', price=222)
book.save()
# 查找
# 根据主键查找,pk表示primary key
# 可以是`具体的属性=值`这种形式
book = Book.objects.get(pk=2)
print("主键查询: ", book)
# 条件查找 filter(command)
book = Book.objects.filter(author="van")
print("条件查询: ", book)
book = Book.objects.filter(author='van').first()
print("条件查询,获得第一条数据", book)
# 删除
book = Book.objects.get(pk=2) # 获得该项
book.delete() # 删除
# 修改
book = Book.objects.get(pk=1) # 获得该项
book.price = 111
book.save() # 保存
return HttpResponse("over")
-
打印的友好显示
主键查询: <Book:(dark, no, 222.0)> 条件查询: <QuerySet [<Book: <Book:(deep, van, 234.0)>>]> 条件查询,获得第一条数据 <Book:(deep, van, 234.0)>