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

自己做网站需要花钱吗大网站的建设重点

自己做网站需要花钱吗,大网站的建设重点,网站开发规范有哪些,wordpress.html插件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/107586.html

相关文章:

  • 自己怎么做鲜花网站文章标题-栏目名称-网站名 dede
  • 医药网站开发佛山网站建设骏域
  • 微信表情包制作网站如何利用云服务器进行网站建设
  • 做装修广告网站好酷炫网站
  • php做网站怎么样苏州工业园区gdp
  • 汽车行业市场分析那个网站做的好一个服务器可以备案几个网站吗
  • 内网建站软件网站栏目名称
  • 企业网站教程 优帮云unas做网站服务器
  • 物流网站和数据库建设四川住房和城乡建设厅网站不能打开
  • 内蒙网站建设wordpress安装插件慢
  • 做网站页面遇到的问题了解深圳网站页面设计
  • 北京微信网站建设报价单seo搜索优化工具
  • 东莞凤岗企业网站建设推广杭州 电商设计网站建设
  • 深圳提供网站建设服务平台常州网站运营公司
  • 关于旅游网站建设的方案10个零网站建设
  • 网站内部资源推广百度推广关键词质量度
  • 网站建设吉金手指专业13seo超级外链发布
  • 制作网站的商家vps云主机可以做网站
  • 2014最新网站模板-网页模板免费下载-风格吧网站开发语言用什么好
  • 广东营销型网站建设网页qq登录保护开启不了
  • 泗阳网站建设网站开发经济可行性分析怎么写
  • 网站创建流程包括哪些步骤电子商务网站多少钱
  • 网站推广机构苏州有哪些it大厂
  • 电商网站开发设计方法营销手段
  • 模板网站建设哪家专业合肥市建设工程市场信息价网站
  • 长沙市师德师风建设网站电商培训机构哪家强
  • 建设一个旅游电子商务网站东莞阳光网官网投诉中心
  • 高端网站建设 来磐石网络郑州建设局网站
  • wordpress官方文档网站建设与优化计入什么科莫
  • 凡科网上传网站wordpress 设置导航