日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

django中嵌套的try-except實例

瀏覽:22日期:2024-10-01 10:53:39

我就廢話不多說了,大家還是直接看代碼吧!

# 因為此時為yaml模板,而且只抓取node port,所以這樣處理效率快content_dict = parse_yaml(content.replace('{{', '').replace('}}', ''))if ’service’ in content_dict.keys(): # 記錄本次yaml里所有的node_port,并更新到數據庫 now_app_list = [] for service_item in content_dict[’service’]: for port_item in service_item[’port’]: if ’nodePort’ in port_item.keys():node_port = int(port_item[’nodePort’])if 30000 <= node_port <= 32000: # 這里判斷比較復雜,如果端口有,而且app相同,不更新。如果端口有,app不一樣,報沖突。如果端口沒有,可插入。 now_app_list.append(node_port) try: AppPort.objects.get(node_port=node_port, app=app) pass except AppPort.DoesNotExist: try: AppPort.objects.get(node_port=node_port) messages.info(self.request, ’nodeport{}端口沖突!’.format(node_port)) return HttpResponseRedirect(reverse_lazy('app:yaml_edit', kwargs=self.kwargs)) except AppPort.DoesNotExist: name = ’{}-{}’.format(app.name, node_port) AppPort.objects.create(name=name,app=app,node_port=node_port )else: messages.info(self.request, ’nodeport{}端口不在指定范圍內(30000-~32000)!’.format(node_port)) return HttpResponseRedirect(reverse_lazy('app:yaml_edit', kwargs=self.kwargs)) # 取出AppPort里所有此app的node_port,多余的要清除。 all_app_list = AppPort.objects.filter(app=app).values_list(’node_port’, flat=True) if all_app_list: # 取交集,也就是數據庫里多余的端口列表 diff_list = [x for x in all_app_list if x not in now_app_list] if diff_list: AppPort.objects.filter(node_port__in=diff_list).delete()

感覺上面這段代碼,應用的技術點蠻多的,作個記錄。

包括其node port的管理思想,提取技巧。

orm的列表扁平化,列表交集,批量刪除

補充知識:Django 在異常捕獲中進行數據庫保存,保存后將異常再拋出

需求:

當我檢查配額時,如果配額不足,我需要將訂單狀態改為5,然后再將原有異常拋出

一:最初做法

try: self.check_quota_enough(create_form) # 檢查配額except Exception as e: self.object.state = 5 self.object.save() raise e

存在問題:django默認開啟了事務,因此我保存訂單狀態后,再拋異常時沒有任何問題

但當我查詢數據庫訂單狀態時,發現異常拋出之前訂單改變的狀態已經丟失

二:優化,使用裝飾器,手動關閉事務

# 在dispatch方法上增加裝飾器,關閉事務class xxxxxxxx(): @method_decorator(transaction.non_atomic_requests) def dispatch(self, request, *args, **kwargs): return super().dispatch(request, *args, **kwargs) def form_valid(self, form): ... ... try: self.check_quota_enough(create_form) # 檢查配額 except Exception as e: self.object.state = 5 self.object.save() raise e

該方法可以解決上述問題

但該方法對整個視圖有效,如果在視圖其他地方需要用到事務的一致性,則顯然不合理

二:優化,定義事務保存點,在局部控制事務一致性

class xxxxxxxx(): def form_valid(self, form): ... ... sid = transaction.savepoint() # 定義事務保存點 try: self.check_quota_enough(create_form) except QuotaNotEnough as e: self.object.state = 5 self.object.save() transaction.savepoint_commit(sid) return self.render_to_json_response(result=False, messages=str(e))

django中嵌套的try-except實例

a.save():此處保存了數據

sid = transaction.savepoint():設置保存點

b.save():此處再次保存了數據

接下來就是邏輯處理:如果滿足xxxxxxxx條件,則手動提交,此時a.save()和b.save()保存的數據都會生效。

如果不滿足xxxxxxxx條件,則執行事務回滾,此時我們定義的保存點之前的a.save()數據不會收到影響,但在保存點之后的b.save()的數據將會回滾。

所以我們可以通過調整保存點的位置,實現我們的需求。

以上這篇django中嵌套的try-except實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品地址| 国产aa精品| 亚洲不卡系列| 四季av一区二区凹凸精品| 伊人久久在线| 国产韩日影视精品| 亚洲精品1区| 婷婷综合福利| 麻豆国产精品一区二区三区| 久久婷婷国产| 不卡av一区二区| 欧美日韩精品免费观看视完整| 欧美日韩视频网站| 快she精品国产999| 国产精品一级| 成人日韩精品| 亚洲综合三区| 久久99久久人婷婷精品综合| 国产传媒在线| 三级欧美韩日大片在线看| 欧美专区一区| 日韩国产一区二区| 石原莉奈在线亚洲二区| 乱一区二区av| 免费国产自久久久久三四区久久| 久久亚洲一区| 国产日韩一区二区三区在线播放| 欧美一区不卡| 91精品推荐| 日韩欧美久久| 久久青草久久| 国产伦精品一区二区三区千人斩| 日韩不卡在线| 日本成人在线网站| 99久久夜色精品国产亚洲1000部| 亚洲精品系列| 欧洲av不卡| 国产麻豆精品| 亚洲国产不卡| 麻豆精品一区二区综合av| 国产一区91| 久久狠狠久久| 亚洲国内精品| 国产精品115| 丝袜诱惑制服诱惑色一区在线观看| 久久狠狠亚洲综合| 最新亚洲激情| 老牛影视精品| 日本午夜免费一区二区 | 精品国产亚洲一区二区三区| 亚洲深夜av| 日韩在线观看| 国产毛片久久久| 一区二区三区国产在线| 久久精品一本| 日本大胆欧美人术艺术动态| 日韩精品久久久久久久电影99爱| 国产精品久久久亚洲一区| 不卡在线一区| 国产aa精品| 久久不见久久见免费视频7| 中文亚洲欧美| 久久久久91| 国产精品99一区二区三| 奇米狠狠一区二区三区| 美美哒免费高清在线观看视频一区二区| 国产日韩电影| 另类欧美日韩国产在线| 日韩精品成人在线观看| 日韩制服丝袜先锋影音| 国产精品高颜值在线观看| 欧美一区网站| 亚洲免费毛片| 91成人精品视频| 欧美精品一区二区久久| 亚洲91视频| 日本在线高清| 欧美激情另类| 黄色aa久久| 女生影院久久| 国产va在线视频| 国产一区二区三区日韩精品| 久久麻豆视频| 国产高清精品二区| 国产乱码精品一区二区三区亚洲人 | 亚洲精品网址| 欧美特黄一级大片| 日韩电影免费在线观看| 国产成人免费av一区二区午夜| 欧美午夜网站| 久久福利在线| 国产精品成人一区二区不卡| 国产精品99久久免费| 国产精品久久久久久久久久白浆 | 麻豆成人av在线| 精品中文字幕一区二区三区四区| 久久亚洲道色| 中文字幕成在线观看| 国语精品一区| 亚洲www免费| 一区免费在线| 天堂av在线一区| 日本在线观看不卡视频| 日本亚洲欧洲无免费码在线| 日韩激情精品| 免费在线观看一区| 久久精品av麻豆的观看方式| 国产日韩欧美一区| 免费在线欧美黄色| 肉色欧美久久久久久久免费看| 在线日韩av| 久久亚洲欧洲| 国产日韩免费| 免费看av不卡| 国精品一区二区| 日韩影院在线观看| 18国产精品| 精品精品99| 国产一区日韩一区| 日韩在线视频一区二区三区| 麻豆一区二区三| 国产精品久久久久久模特| 久草免费在线视频| 怡红院精品视频在线观看极品| 免费人成黄页网站在线一区二区| 青青草91久久久久久久久| 里番精品3d一二三区| 精品亚洲美女网站| 亚洲欧美日韩精品一区二区 | 视频一区国产视频| 麻豆国产精品一区二区三区| 桃色一区二区| 亚洲精品美女| 国语精品一区| 激情综合网址| 日本在线成人| 黑森林国产精品av| 亚洲欧美日本国产 | 麻豆精品在线播放| 亚洲黄色在线| 麻豆国产精品一区二区三区| 在线亚洲成人| 国产私拍福利精品视频二区| 蜜桃av.网站在线观看| 亚洲欧美日韩视频二区| 国产精品天堂蜜av在线播放| 国产真实久久| 国产精品高潮呻吟久久久久| 国产精品久久久免费| 亚洲黄色影院| 精品国产一区二区三区av片| 国产精品美女| 国产专区精品| 亚洲精品综合| 久久精品国语| 国产精品一线| 免费欧美在线视频| 久久夜夜操妹子| 国产精品夜夜夜| 在线综合视频| 亚洲伦乱视频| 九九九精品视频| 日韩三区四区| 丝袜诱惑一区二区| 国产精品毛片aⅴ一区二区三区| 天堂资源在线亚洲| 久久av超碰| 中文字幕日本一区二区| 亚洲第一精品影视| 成人精品国产亚洲| 欧美日韩18| 亚洲精品一二三**| 日韩精品久久久久久久电影99爱 | 国产欧美69| 免费在线观看一区二区三区| 亚洲成人精品| 免费在线欧美黄色| 亚洲丝袜美腿一区| 国产精品日本| 久久久久久久久丰满| 欧美激情麻豆| 国产免费久久| 日韩精品三区四区| 亚洲一区二区av| 在线国产一区二区| 欧美 日韩 国产一区二区在线视频| 美腿丝袜亚洲三区| 日韩精品欧美大片| 视频一区二区三区入口| 日韩在线综合| 色偷偷偷在线视频播放| 青青国产91久久久久久| 夜久久久久久| 久久婷婷久久| 久久精品一区二区不卡| 国产精品99视频| 日韩电影二区| 国产一区二区三区网| 国产精品大片| 国产aⅴ精品一区二区四区|