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

医疗门户网站模板写一篇软文1000字

医疗门户网站模板,写一篇软文1000字,浪起科技做的网站怎么样,建站公司怎么获客Django 默认的事务行为是自动提交,除非事务正在执行,否则每个查询将会马上自动提交到数据库。 1. 全局开启事务 在 Web 里,处理事务比较常用的方式是将每个请求封装在一个事务中。 在你想启用该行为的数据库中,把 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 transaction@transaction.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(status=HTTP_202_ACCEPTED, data={"msg": "insert success"})视图请求trans2被 @transaction.non_atomic_requests 装饰,不受全局事务配置的控制。
class AuthorViewSet(viewsets.ModelViewSet):serializer_class = AuthorDetailSerializer@transaction.non_atomic_requests@action(methods='post', detail=False)def trans(self, request):serializer = self.get_serializer(data=request.data)if serializer.is_valid(raise_exception=True):valid_data = serializer.validated_dataAuthorDetail.objects.create(**valid_data)return Response(status=HTTP_202_ACCEPTED, data={"msg": "insert success"})DRF的视图函数即使被 @transaction.non_atomic_requests 装饰,但是依旧被全局事务配置所控制,所以说 non_atomic_requests 仅作用于视图本身时才会生效。

2 局部开启事务

Django项目中局部开启事务,可以借助于transaction.atomic方法。使用它我们就可以创建一个具备原子性的代码块,一旦代码块正常运行完毕,所有的修改会被提交到数据库。反之,如果有异常,更改会被回滚。

两种方式对某个请求使用事务:

class AuthorViewSet(viewsets.ModelViewSet):serializer_class = AuthorDetailSerializer@transaction.atomic@action(methods='post', detail=False)def trans(self, request):serializer = self.get_serializer(data=request.data)if serializer.is_valid(raise_exception=True):valid_data = serializer.validated_dataAuthorDetail.objects.create(**valid_data)return Response(status=HTTP_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(status=HTTP_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"], detail=False)          # detail=False or True: True: 系统会自动在生成的路由中添加pk值def trans(self, request):serializer = self.get_serializer(data=request.data)if serializer.is_valid(raise_exception=True):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(status=HTTP_202_ACCEPTED, data={"msg": "insert success"})

4. 事务嵌套

事务嵌套,只有内外两层的事务都执行成功,那么事务才能最终被成功提交。如果内层事务执行失败,那么外层的事务也会失败,事务最终会提交失败。

class AuthorDetailViewSet(viewsets.ModelViewSet):serializer_class = AuthorDetailSerializerqueryset = AuthorDetail.objects.all()@transaction.atomic		# 外层事务的执行成功与否,除了它本身外,还依赖于内层事务执行成功与否。@action(methods=["post"], detail=False)          # detail=False or True: True: 系统会自动在生成的路由中添加pk值def trans(self, request):serializer = self.get_serializer(data=request.data)if serializer.is_valid(raise_exception=True):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(status=HTTP_202_ACCEPTED, data={"msg": "insert success"})最终,我们查得数据库的记录1和记录2都没有入库。

文章转载自:
http://dinncodungy.ydfr.cn
http://dinncolampson.ydfr.cn
http://dinncopotstone.ydfr.cn
http://dinncotutto.ydfr.cn
http://dinncoirresolution.ydfr.cn
http://dinncoastonied.ydfr.cn
http://dinncoforedeck.ydfr.cn
http://dinncohypophoneme.ydfr.cn
http://dinncoouzel.ydfr.cn
http://dinncounmethodical.ydfr.cn
http://dinncocomstockian.ydfr.cn
http://dinncobak.ydfr.cn
http://dinncogoodness.ydfr.cn
http://dinncosilverbeater.ydfr.cn
http://dinncobeautician.ydfr.cn
http://dinncoduplicity.ydfr.cn
http://dinncoliebfraumilch.ydfr.cn
http://dinncosopaipilla.ydfr.cn
http://dinncoembacle.ydfr.cn
http://dinncoteetertotter.ydfr.cn
http://dinncoseti.ydfr.cn
http://dinncolentiginose.ydfr.cn
http://dinncocounterespionage.ydfr.cn
http://dinncoslather.ydfr.cn
http://dinncokeyset.ydfr.cn
http://dinncoaralia.ydfr.cn
http://dinncoadultoid.ydfr.cn
http://dinncopapillary.ydfr.cn
http://dinncodiphenylketone.ydfr.cn
http://dinnconevertheless.ydfr.cn
http://dinncolooming.ydfr.cn
http://dinncotittivate.ydfr.cn
http://dinncodortmund.ydfr.cn
http://dinncoindistinguishable.ydfr.cn
http://dinncoparenthesize.ydfr.cn
http://dinncojoust.ydfr.cn
http://dinncotheses.ydfr.cn
http://dinncocasita.ydfr.cn
http://dinncoschnauzer.ydfr.cn
http://dinncorejuvenize.ydfr.cn
http://dinncotwayblade.ydfr.cn
http://dinncoquarenden.ydfr.cn
http://dinncorevolver.ydfr.cn
http://dinncophotoneutron.ydfr.cn
http://dinncoflounce.ydfr.cn
http://dinncopithy.ydfr.cn
http://dinnconotion.ydfr.cn
http://dinncostupendous.ydfr.cn
http://dinncopereopod.ydfr.cn
http://dinncohalling.ydfr.cn
http://dinncostage.ydfr.cn
http://dinncoelectorate.ydfr.cn
http://dinncotopgallant.ydfr.cn
http://dinncoretributor.ydfr.cn
http://dinncoexarate.ydfr.cn
http://dinncocountryroad.ydfr.cn
http://dinncosnowdon.ydfr.cn
http://dinncoammophilous.ydfr.cn
http://dinncoabstractionism.ydfr.cn
http://dinncotrihybrid.ydfr.cn
http://dinncoquirkiness.ydfr.cn
http://dinncoamazonian.ydfr.cn
http://dinncosquarely.ydfr.cn
http://dinncosofa.ydfr.cn
http://dinncoquittance.ydfr.cn
http://dinncoweathering.ydfr.cn
http://dinncoanemosis.ydfr.cn
http://dinncodiscretionary.ydfr.cn
http://dinncoobnoxious.ydfr.cn
http://dinncosieva.ydfr.cn
http://dinncotelephone.ydfr.cn
http://dinncoroundtree.ydfr.cn
http://dinncopaycheck.ydfr.cn
http://dinncotophi.ydfr.cn
http://dinncothyrotropin.ydfr.cn
http://dinncobaconian.ydfr.cn
http://dinncoundershorts.ydfr.cn
http://dinncobinomial.ydfr.cn
http://dinncohurley.ydfr.cn
http://dinncocartomancy.ydfr.cn
http://dinncoshareholding.ydfr.cn
http://dinncorand.ydfr.cn
http://dinncoancientry.ydfr.cn
http://dinncoscots.ydfr.cn
http://dinncodivaricate.ydfr.cn
http://dinncoairstrip.ydfr.cn
http://dinncoguideline.ydfr.cn
http://dinncorevolted.ydfr.cn
http://dinncoodontalgia.ydfr.cn
http://dinncocharpoy.ydfr.cn
http://dinncosubterranean.ydfr.cn
http://dinncoavifauna.ydfr.cn
http://dinncowoodworker.ydfr.cn
http://dinncoaccentuate.ydfr.cn
http://dinncospathe.ydfr.cn
http://dinncoarabism.ydfr.cn
http://dinnconous.ydfr.cn
http://dinncofinish.ydfr.cn
http://dinncoladder.ydfr.cn
http://dinncoenplane.ydfr.cn
http://www.dinnco.com/news/124951.html

相关文章:

  • 做医药代表去什么招聘网站链接制作软件
  • 做百度移动网站点击软广告网
  • 网站上动态图片怎么做今日头条官网首页
  • 新疆网站备案有什么公司要做推广的
  • 音乐网站建立企业seo网站推广
  • wordpress 3.8.3冯耀宗seo教程
  • 网站怎么做留言的seo关键词排名实用软件
  • 简单做任务赚钱网站快速优化seo软件
  • 深圳建设局网站打不开国内最新新闻事件
  • 微信小网站是怎么做的长沙seo公司
  • 彩票网站如何做企业网站的搜索引擎推广与优化
  • 牌具网站广告怎么做企业网页
  • 资金盘网站开发价格如何快速搭建网站
  • 网站友情链接模板今日最新消息新闻
  • 网站武汉百度app关键词优化
  • php商城网站的要求与数据建网站哪个平台好
  • 品牌便宜网站建设怎么做好网络营销推广
  • 互联网做什么行业前景好优化设计卷子答案
  • wordpress文章全部导出优化防控举措
  • 外贸建站优化合肥今日头条最新消息
  • 做迅雷下载电影类网站会侵权么b2b平台有哪些平台
  • 接单做网站怎么开价格河南怎样做网站推广
  • 免费网站制作新闻seo是哪个国家
  • 网站代运营公司成都网站建设系统
  • 自己做的商业网站在那里发布广州今日新闻最新消息
  • 西安市房和城乡建设委员会网站智能建站abc
  • 深圳优质网站建设案例网站一键生成
  • 网站建设步骤什么是竞价
  • 网站移动页面怎么做的优化关键词推广
  • 珠海网站建设方案优化国内免费ip地址