ORM
O:object,R:relation,M:mapping,对象关系映射,
使用面向对象的思维操作数据库
python中的一个类对应数据库中的一张表格
python中的一个对象对应表格中的一条记录
python中的类的属性对应表格中的字段
CRUD
在models.py中创建模型类,生成对应的数据表格
注意:一定要继承Model类
from django.db import models
# Create your models here.
#创建模型类
#1.首先继承models.Model 类
class Person(models.Model):
id = models.AutoField(primary_key=True)#主键自动增长,int
name = models.CharField(max_length=32)#字符串类型。
age = models.IntegerField()#整型
height = models.DecimalField(max_digits=5,decimal_places=2)#175.00
weight = models.FloatField() #体重
birthday=models.DateField() #日期格式 YYYY-MM-DD
生成迁移文件
生成表
保存用户
def add_person(request):
if request.method=='POST':
#1 获取表单提交过来的数据
name = request.POST.get('name')
age = request.POST.get('age')
height = request.POST.get('height')
weight = request.POST.get('weight')
birthday = request.POST.get('birthday')
#2 保存到数据库
models.Person.objects.create(
name=name,
age=age,
height=height,
weight=weight,
birthday=birthday
)
#3 响应
#return HttpResponse('添加成功')
return redirect('/app01/all_person/')
return render(request,'app01/add_person.html')
查询用户
#获取所有用户
def all_person(request):
#1 从数据库中获取所有的用户
ret=models.Person.objects.all() #获取所有的记录
print(ret)
#all()方法 返回的类型Queryset对象类型,类似列表的数据类型
#使用方式和列表相同。
#<QuerySet [<Person: Person object (1)>, <Person: Person object (2)>]>
#print(ret[0].name) #获取第一个对象的name值
return render(request,'app01/all_person.html',{'person_obg_lst':ret})
删除用户
def delet_person(request):
#1 获取id
id = request.GET.get('id')
#2 删除数据库中对应的记录
models.Person.objects.get(id=id).delete()
#3 重定向到所有用户页面
return redirect('/app01/all_person/')