Django 中的 ORM 机制

什么是ORM

Object Relation Mapping 即对象关系映射。实现对象模型到关系模型的双向转换。

pythonmysql
对象模型关系模型
模型类数据库的二维表
模型类的对象表中的一条记录
使用ORM

通过表自动生成模型

 python manage.py inspectdb > polls/models.py

记得在APPS里添加项目名字

在这里插入图片描述
进入Django的编译器

 python manage.py shell

然后即可在Django的编译器中以操作对象的方式操作关系数据库

  • 导入想操作的类
>>> from polls.models import Subject

添加对象| 修改对象
.save() 后才算写入了数据库

>>> subject1=Subject(name='大数据',intro='这是一个介绍',is_hot=1)
>>> subject1.name = ('java大数据+人工智能')
>>> subject1.save()

拿所有对象 (all)

>>> q = Subject.objects.all()
>>> for subject in q:
...     	print(subject.no, subject.name)

拿具体某个对象( get)

>>> subject = Subject.objects.get(no=1)
>>> subject.name
'Python全栈+人工智能'
>>> subject.is_hot
1

根据条件查询( filter)

>>> Subject.objects.filter(is_hot=0)
Django模板过滤器语法
# yesno过滤器
<span>性别:{{ teacher.sex | yesno:'男,女' }}</span>
# 时间日期过滤器
<span>出生日期:{{ teacher.birth | date:'Y年n月j日' }}</span>

更多Django内置过滤器

only 和 defer
# only 只查哪些字段
subject = Subject.objects.only('name', 'is_hot').get(no=sno)
# defer 不查哪些字段
queryset = Teacher.objects.defer('subject').filter(subject__no=sno)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值