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

c 语言可以做网站吗建立网站的英语

c 语言可以做网站吗,建立网站的英语,企业策划书ppt,北京口碑最好的it培训机构Django 默认的事务行为是自动提交#xff0c;除非事务正在执行#xff0c;否则每个查询将会马上自动提交到数据库。 1. 全局开启事务 在 Web 里#xff0c;处理事务比较常用的方式是将每个请求封装在一个事务中。 在你想启用该行为的数据库中#xff0c;把 settings 配置…Django 默认的事务行为是自动提交除非事务正在执行否则每个查询将会马上自动提交到数据库。 1. 全局开启事务 在 Web 里处理事务比较常用的方式是将每个请求封装在一个事务中。 在你想启用该行为的数据库中把 settings 配置数据库中的参数 ATOMIC_REQUESTS 设置为 True。 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: testdb, USER: root, PASSWORD: 123, HOST: 127.0.0.1, PORT: 3306, ATOMIC_REQUESTS: True # 全局开启事务和http请求的整个过程绑定在一起} }它是这样工作的在调用视图方法前Django 先生成一个事务。如果响应能正常生成Django 会提交该事务。而如果视图出现异常Django 则会回滚该事务。 如果你全局开启了事务你仍然可以使用 non_atomic_requests 装饰器让某些视图方法不受事务控制但需要注意的是该装饰器仅作用于视图本身时才会生效在DRF的viewset中不生效。 from django.db import transactiontransaction.non_atomic_requests def trans2():valid_data_test {gender: male, birth: 2020-10-01, tele: 18812341234, addr: 南京市雨花台区}res_test AuthorDetail.objects.create(**valid_data_test)res_test 1return Response(statusHTTP_202_ACCEPTED, data{msg: insert success})视图请求trans2被 transaction.non_atomic_requests 装饰不受全局事务配置的控制。class AuthorViewSet(viewsets.ModelViewSet):serializer_class AuthorDetailSerializertransaction.non_atomic_requestsaction(methodspost, detailFalse)def trans(self, request):serializer self.get_serializer(datarequest.data)if serializer.is_valid(raise_exceptionTrue):valid_data serializer.validated_dataAuthorDetail.objects.create(**valid_data)return Response(statusHTTP_202_ACCEPTED, data{msg: insert success})DRF的视图函数即使被 transaction.non_atomic_requests 装饰但是依旧被全局事务配置所控制所以说 non_atomic_requests 仅作用于视图本身时才会生效。2 局部开启事务 Django项目中局部开启事务可以借助于transaction.atomic方法。使用它我们就可以创建一个具备原子性的代码块一旦代码块正常运行完毕所有的修改会被提交到数据库。反之如果有异常更改会被回滚。 两种方式对某个请求使用事务 class AuthorViewSet(viewsets.ModelViewSet):serializer_class AuthorDetailSerializertransaction.atomicaction(methodspost, detailFalse)def trans(self, request):serializer self.get_serializer(datarequest.data)if serializer.is_valid(raise_exceptionTrue):valid_data serializer.validated_dataAuthorDetail.objects.create(**valid_data)return Response(statusHTTP_202_ACCEPTED, data{msg: insert success})transaction.atomic def trans2():valid_data_test {gender: male, birth: 2020-10-01, tele: 18812341234, addr: 南京市雨花台区}res_test AuthorDetail.objects.create(**valid_data_test)res_test 1return Response(statusHTTP_202_ACCEPTED, data{msg: insert success})对请求中的某个代码块使用事务 with transaction.atomic():AuthorDetail.objects.create(**valid_data_test)3. 显式开启保存点 在事务操作中我们还会经常显式地设置保存点(savepoint)。一旦发生异常或错误我们使用savepoint_rollback方法让程序回滚到指定的保存点。如果没有问题就使用savepoint_commit方法提交事务。 class AuthorDetailViewSet(viewsets.ModelViewSet):serializer_class AuthorDetailSerializerqueryset AuthorDetail.objects.all()action(methods[post], detailFalse) # detailFalse or True: True: 系统会自动在生成的路由中添加pk值def trans(self, request):serializer self.get_serializer(datarequest.data)if serializer.is_valid(raise_exceptionTrue):valid_data serializer.validated_dataAuthorDetail.objects.create(**valid_data)valid_data_test {gender: male, birthday: 2020-10-01, telephone: 18812341234, addr: 南京市雨花台区}valid_data_test2 {gender: male, birthday: 2020-10-02, telephone: 18812341234, addr: 南京市雨花台区}with transaction.atomic():AuthorDetail.objects.create(**valid_data_test)sid transaction.savepoint()try:res_test2 AuthorDetail.objects.create(**valid_data_test2)res_test2 1except Exception:transaction.savepoint_rollback(sid)print(error and rollback)transaction.savepoint_commit(sid)print(commit success)return Response(statusHTTP_202_ACCEPTED, data{msg: insert success})4. 事务嵌套 事务嵌套只有内外两层的事务都执行成功那么事务才能最终被成功提交。如果内层事务执行失败那么外层的事务也会失败事务最终会提交失败。 class AuthorDetailViewSet(viewsets.ModelViewSet):serializer_class AuthorDetailSerializerqueryset AuthorDetail.objects.all()transaction.atomic # 外层事务的执行成功与否除了它本身外还依赖于内层事务执行成功与否。action(methods[post], detailFalse) # detailFalse or True: True: 系统会自动在生成的路由中添加pk值def trans(self, request):serializer self.get_serializer(datarequest.data)if serializer.is_valid(raise_exceptionTrue):valid_data serializer.validated_dataAuthorDetail.objects.create(**valid_data) # 记录1valid_data_test {gender: male, birthday: 2020-10-01, telephone: 18812341234, addr: 南京市雨花台区}with transaction.atomic(): # 故意让内层的事务执行失败res_test AuthorDetail.objects.create(**valid_data_test) # 记录2res_test 1 return Response(statusHTTP_202_ACCEPTED, data{msg: insert success})最终我们查得数据库的记录1和记录2都没有入库。
http://www.dnsts.com.cn/news/45991.html

相关文章:

  • 网站运营及推广方案营销qq怎么申请
  • 国外社交网站建设wordpress免费网站模板
  • 张家界商城网站开发设计西地那非使用三大忌
  • 邵武网站建设wzjseo厦门市保障性住房官网
  • 嘉祥网站建设公司网页制作软件下载教程
  • 网页网站怎么做软件开发平台下载
  • 一个专门做标题的网站wordpress换不了密码
  • 德骏网站建设怎么查看网站ftp地址
  • 电商资源网站网站导航网站怎么做
  • 怎么做自己的网站链接公司设计图平面
  • 重庆开网站天津集体建设用地出售 网站
  • 网站制作详细流程flutter 如何做网站
  • 网站设计师工作室上海网页制作机构
  • 爱站网长尾词挖掘广州网络建站
  • 网站开发 精品课程一个人看的浏览器
  • 深圳住房和建设局网站在哪个网专业黑帽seo推广
  • 做销售网站的公司哪家最好南宁手机端建站模板
  • 商城微信网站怎么做wordpress首页调用菜单
  • 网上书店网站建设实训总结进一步优化营商环境
  • 南京百度推广网站wordpress编辑模板文字
  • 好一点的网站广东微信网站制作多少钱
  • thinkphp 网站下载市场调研一般怎么做
  • 美乐乐是哪个公司做的网站企业网站pv是什么
  • 营销网站解决方案好看的网站首页图片
  • 当当网网站系统建设的意义小说网站制作模板
  • 图标网站导航制作怎么做互联网推广销售是做什么的
  • 网站 跳出率 多少5118
  • godaddy网站建设怎么样如何做网站拓扑结构图
  • 深圳网站建设推广论坛婚庆一条龙价目表
  • 苏州那里可以建网站台州网站搭建