当前位置: 首页 > news >正文

gom传奇网站建设酒泉哪家公司可以做网站

gom传奇网站建设,酒泉哪家公司可以做网站,精准营销数据,行业网站建设运营1.实现事务的三种方式 1.1 全局开启事务--- 全局开启事务#xff0c;绑定的是http请求响应整个过程 DATABASES {default: {#全局开启事务#xff0c;绑定的是http请求响应整个过程ATOMIC_REQUESTS: True, }} from django.db import transaction# 局部禁用事务 transac…1.实现事务的三种方式 1.1 全局开启事务--- 全局开启事务绑定的是http请求响应整个过程 DATABASES {default: {#全局开启事务绑定的是http请求响应整个过程ATOMIC_REQUESTS: True, }} from django.db import transaction# 局部禁用事务 transaction.non_atomic_requests def seckill(request):return HttpResponse(秒杀成功) 1.2 一个视图函数在一个事物中 # fbv开启from django.db import transactiontransaction.atomicdef seckill(request):return HttpResponse(秒杀成功) # cbv开启 from django.db import transaction from rest_framework.views import APIView class SeckillAPIView(APIView):transaction.atomicdef post(self, request):pass 1.3 局部使用事务 from django.db import transaction def seckill(request):with transaction.atomic(): #不用提交事务 with上下文管理器pass # 都在一个事物中return HttpResponse(秒杀成功) 2 事物的回滚和保存点 # 1 普通事务操作(手动操作) transaction.atomic() # 开启事务 transaction.commit() # 提交事务 transaction.rollback() # 回滚事务# 2 可以使用上下文管理器来控制(自动操作) with transaction.atomic(): # 自动提交和回滚 保存点 在事务操作中我们还会经常显式地设置保存点(savepoint) 一旦发生异常或错误我们使用savepoint_rollback方法让程序回滚到指定的保存点 如果没有问题就使用savepoint_commit方法提交事务 from .models import Book from django.db import transaction def seckill(request):with transaction.atomic():# 设置回滚点一定要开启事务sid transaction.savepoint()print(sid)try:book Book.objects.get(pk1)book.name 红楼梦book.save()except Exception as e:# 如发生异常回滚到指定地方transaction.savepoint_rollback(sid)print(出异常了回滚)# 如果没有异常显式地提交一次事务transaction.savepoint_commit(sid)return HttpResponse(秒杀成功) transaction.atomic() # 开启事务 sid transaction.savepoint() # 设置保存点 transaction.savepoint_rollback(sid) # 回滚到保存点 transaction.savepoint_commit(sid) #提交保存点 3 事务提交后执行某个回调函数 有的时候我们希望当前事务提交后立即执行额外的任务比如客户下订单后立即邮件通知卖家 案例一 def send_email():print(发送邮件给卖家了) def seckill(request):with transaction.atomic():# 设置回滚点一定要开启事务sid transaction.savepoint()print(sid)try:book Book.objects.get(pk1)book.count book.count-1book.save()except Exception as e:# 如发生异常回滚到指定地方transaction.savepoint_rollback(sid)else:transaction.savepoint_commit(sid) #提交事务transaction.on_commit(send_email) #提交事务之后执行send_email函数return HttpResponse(秒杀成功)案例二 transaction.on_commit(lambda: send_sms.delay(1898288322)) #异步提交利用celery提交异步任务
http://www.dnsts.com.cn/news/49465.html

相关文章:

  • 成都网站设计制作网站怎么做关键词
  • 网站开发的方法深圳做网站建设的哪家效果好又便宜
  • 校园超市网站开发如何刷网站流量
  • 重庆网站建设的意义中国好设计
  • 网站注册界面免费永久个人云服务器
  • 怎么在网站做外部链接烟台网站制作专业
  • p2f网站系统免费文档模板网站
  • 阿里做网站怎么做济南公司做网站的价格
  • 俄语网站推广个人网站代做
  • 站长查询域名秦皇岛app开发公司
  • 绿色科技网站建设工作证明怎么写
  • 网站提升排名高端网站建设策划
  • 哪家能建设网站企业服务账号是什么
  • 灰色风格的网站企业网站seo推广
  • 织梦网站模板修改wordpress类开源网站
  • 推广网站最有效方法学硬件好还是学软件好
  • 河源市住房和城乡建设局网站东营造价信息网官网
  • 青岛公司网站设计网易企业邮箱修改密码
  • 好看的网站模板哪个网站做婚礼邀请函好
  • 手机网站弹出提示框主题巴巴WordPress主题后门
  • 广告推广平台网站有哪些免费工程信息网
  • 那个旅游网站可以做行程西安企业建站公司
  • 仿笑话网站源码云南楚雄医药高等专科学校
  • 潍坊网站建设优化微信公众号制作方法
  • 360网站点评基于php的网站开发设计
  • 淘宝seo是指什么哈尔滨优化seo外包公司
  • 咸阳网站制作网站制作容易吗怎么样
  • 微网站开发程序wordpress搜索提示
  • sae网站开发企业网站建设算什么费用
  • 生活服务网站开发与设计wordpress 星 评分