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

网站怎么做图片转换wordpress 汉化软件

网站怎么做图片转换,wordpress 汉化软件,如何让移动网站更优秀,公司网站建设系统django中实现事务的几种方式 # 1 全局开启事务--- 全局开启事务#xff0c;绑定的是http请求响应整个过程DATABASES {default: {#全局开启事务#xff0c;绑定的是http请求响应整个过程ATOMIC_REQUESTS: True, }}from django.db import transaction# 局部禁用事务trans…django中实现事务的几种方式 # 1 全局开启事务--- 全局开启事务绑定的是http请求响应整个过程DATABASES {default: {#全局开启事务绑定的是http请求响应整个过程ATOMIC_REQUESTS: True, }}from django.db import transaction# 局部禁用事务transaction.non_atomic_requestsdef seckill(request):return HttpResponse(秒杀成功)# 2 一个视图函数在一个事物中# fbv开启from django.db import transactiontransaction.atomicdef seckill(request):return HttpResponse(秒杀成功)# cbv开启from django.db import transactionfrom rest_framework.views import APIViewclass SeckillAPIView(APIView):transaction.atomicdef post(self, request):pass# 3 局部使用事务 from django.db import transaction def seckill(request):with transaction.atomic():pass # 都在一个事物中return HttpResponse(秒杀成功) 事物的回滚和保存点 # 1 普通事务操作(手动操作) transaction.atomic() # 开启事务 transaction.commit() # 提交事务 transaction.rollback() # 回滚事务# 2 可以使用上下文管理器来控制(自动操作) with transaction.atomic(): # 自动提交和回滚# 3 保存点-开启事务干了点事设置保存点1干了点事设置一个保存点2干了点事回滚到干完第二个事回滚到保存点2 在事务操作中我们还会经常显式地设置保存点(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) #提交保存点 事务提交后执行某个回调函数 # 有的时候我们希望当前事务提交后立即执行额外的任务比如客户下订单后立即邮件通知卖家 ###### 案例一################## 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)transaction.on_commit(lambda: send_sms.delay(1898288322))return HttpResponse(秒杀成功)##### 案例二celery中使用### transaction.on_commit(lambda: send_sms.delay(1898288322)) django实现悲观锁乐观锁案例 # 线上卖图书-图书表 图书名字图书价格库存字段-订单表 订单id订单名字# 表准备class Book(models.Model):name models.CharField(max_length32)price models.IntegerField() #count models.SmallIntegerField(verbose_name库存)class Order(models.Model):order_id models.CharField(max_length64)order_name models.CharField(max_length32)# 使用mysql DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: lqz,HOST: 127.0.0.1,PORT: 3306,USER: lqz,PASSWORD: 123,} }# 创建lqz数据库原生mysql悲观锁 begin; # 开启事务select * from goods where id 1 for update; # 行锁# order表中加数据update goods set stock stock - 1 where id 1; # 更新commit; #提交事务 orm实现上述 #1 使用悲观锁实现下单 transaction.atomic # 整个过程在一个事物中---》改两个表book表减库存订单表生成记录 def seckill(request):# 锁住查询到的book对象直到事务结束sid transaction.savepoint() # 保存点# 悲观锁 select_for_update()# 加锁了--》行锁还是表锁 分情况都有可能#book Book.objects.select_for_update().filter(pk1).first() # 加悲观锁,行锁锁住当前行if book.count 0:print(库存可以下单)# 订单表插入一条Order.objects.create(order_idstr(datetime.datetime.now()), order_name测试订单)# 库存-1扣减的时候判断库存是不是上面查出来的库存如果不是就回滚time.sleep(random.randint(1, 4)) # 模拟延迟book.countbook.count-1book.save()transaction.savepoint_commit(sid) # 提交释放行锁return HttpResponse(秒杀成功)else:transaction.savepoint_rollback(sid) #回滚释放行锁return HttpResponse(库存不足秒杀失败) 乐观锁秒杀--》库存还有有的人就没成功 # 2 乐观锁秒杀--普通版 transaction.atomic def seckill(request):# 锁住查询到的book对象直到事务结束sid transaction.savepoint()book Book.objects.filter(pk1).first() # 没加锁count book.countprint(现在的库存为%s % count)if book.count 0:print(库存可以下单)Order.objects.create(order_idstr(datetime.datetime.now()), order_name测试订单-乐观锁)# 库存-1扣减的时候判断库存是不是上面查出来的库存如果不是就回滚# time.sleep(random.randint(1, 4)) # 模拟延迟res Book.objects.filter(pk1, countcount).update(countcount - 1)if res 1: # 表示修改成功transaction.savepoint_commit(sid)return HttpResponse(秒杀成功)else: # 修改不成功回滚transaction.savepoint_rollback(sid)return HttpResponse(被别人改了回滚秒杀失败)else:transaction.savepoint_rollback(sid)return HttpResponse(库存不足秒杀失败)
http://www.yutouwan.com/news/197710/

相关文章:

  • 谁有网站推荐一下好在线网站建设诚信经营
  • 网站特效网大连建设工程信息网华宇凤凰城东侧市政管网配套工程
  • 承德市网站开发大连企业建设网站
  • 网站页面效果图怎么做唐山做企业网站的公司
  • 网站开发前台mip网站怎么做匹配
  • 建设网站沙井东营网站设计公司
  • 网站从服务器上下载文件怎么做百度联盟网站
  • 抖音代运营服务流程南宁7天优化网络科技公司
  • 网站开发项目挣钱吗主体负责人和网站负责人不能是同一个人
  • 网站全屏代码泰安市住房和城乡建设厅网站
  • 怎样自己做网站卖钱重庆招聘一般上什么网站
  • 求推荐好的网站建设平台怎么制作网页
  • 深圳哪里有做网站的网站开发实验结论
  • 网站建设费用明细报价把里面的dede和plugins这2个文件夹覆盖到你的网站根目录
  • 哈尔滨网站小程序制作湘潭专业seo优化推荐
  • 深圳网站建设网站运营最吸引人的汽车广告语
  • 双轨网站开发简述网站的建设流程
  • 网站加速服务哈尔滨模板建站源码
  • 分析苏宁易购的网站建设未来网站建设想法
  • 哈尔滨网站外包wordpress ps.w.org
  • 水墨背景风格企业网站模板桂林漓江景区介绍
  • 网站卡的原因网站地址做图标
  • 网站响应式和非响应式网站做支付接口吗
  • 网站开发规划方案慧聪网郭凡生现状
  • 网站开发前途查询网站所有关键词排名
  • 云南高端网站制作价格上海市建设工程安全生产协会网站
  • 在国内怎么做国外网站企业网站建设专业的
  • 商务网站建设的基本流程罗湖商城网站建设哪家技术好
  • 郑州做网站加密的公司wordpress+icon+修改
  • 做外贸需要到外汇管理网站口碑营销的本质是什么