python3开发进阶-Django框架中的ORM的常用操作的补充(F查询和Q查询,事务)
2018-06-22 22:32
1136 查看
阅读目录
F查询和Q查询
事务
SQL数据main_app01_product
F查询和Q查询
事务
一、F查询和Q查询
1、F查询
查询前的准备INSERT INTO app01_product (id, name, price, inventory, sale) VALUES (1, '跟大娃变大', 239, 1000, 10); INSERT INTO app01_product (id, name, price, inventory, sale) VALUES (2, '跟二娃学吹牛逼', 20150, 60, 60); INSERT INTO app01_product (id, name, price, inventory, sale) VALUES (3, '跟三娃学喊麦', 50150, 100, 0); INSERT INTO app01_product (id, name, price, inventory, sale) VALUES (4, '跟四娃学诗歌', 159, 50, 10000); INSERT INTO app01_product (id, name, price, inventory, sale) VALUES (5, '跟五娃学树新风', 155, 100, 200); INSERT INTO app01_product (id, name, price, inventory, sale) VALUES (6, '跟六娃学喷口水', 152, 200, 1);
SQL数据main_app01_product
import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") import django django.setup() import datetime from app01 import models try: from django.db.models import F from django.db import transaction #买一本书 #在数据库层面要做到的事儿 #1、创建一条订单数据 #2、去产品表 将卖出数+1,库存数-1 with transaction.atomic(): #开启事务处理 #创建一条订单数据 models.Order.objects.create(num='123456789',product_id=1,count=1) #去产品表 将卖出数+1,库存数-1(报错) models.Product.objects.get(id=1).update(inventory=F('inventory')-1,sale=F('sale')+1) #能执行成功 #models.Product.objects.filter(id=1).update(inventory=F('inventory'-1,sale=F('sale')+1)) except Exception as e: print(e)
# 不开启事务 # try: # # 创建一条订单数据 # models.Order.objects.create(num="123456789", product_id=1, count=1) # # 去产品表 将卖出数+1, 库存数-1 # models.Product.objects.get(id=1).update(kucun=F("kucun") - 1, maichu=F("maichu") + 1) # except Exception as e: # print(e)
相关文章推荐
- python3开发进阶-Django框架中的ORM的常用(增,删,改,查)操作
- python3开发进阶-Django框架的ORM常用字段和参数
- python3开发进阶-Django框架的自带认证功能auth模块和User对象的基本操作
- python3开发进阶-Django框架的Form表单系统和基本操作
- python3开发进阶-Django框架的起飞加速一(ORM)
- Django进阶Model篇004 - ORM常用操作
- python3开发进阶-Django框架的中间件的五种用法和逻辑过程
- python3-开发进阶补充Django中的文件的上传
- 使用Python的web.py框架实现类似Django的ORM查询的教程
- 利用Python的Django框架中的ORM建立查询API
- python3开发进阶-Django框架起飞前的准备
- python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法
- python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)
- python3开发进阶-Django框架的详解
- 使用Python的web.py框架实现类似Django的ORM查询的教程
- web框架开发-Django模型层(1)之ORM简介和单表操作
- python3-开发进阶 django-rest framework 中的 版本操作(看源码解说)
- 每周一荐:Python Web开发框架Django
- 玩聚网目前也是基于Python的Django框架开发
- python-django开发web框架的setting.py