django中嵌套的try-except

 
  
# 因为此时为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的列表扁平化,列表交集,批量删除

转载于:https://www.cnblogs.com/aguncn/p/11359430.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Django是一种用于构建Web应用程序的Python框架。而Element-UI是一种基于Vue.js的前端UI组件库。要在Django使用Element-UI,你需要在Django项目使用Vue.js,并在前端部分使用Element-UI组件。你可以使用npm或yarn安装Element-UI,然后在Vue组件使用它。 ### 回答2: 在Django使用Element-UI可以通过以下步骤进行: 1. 在Django项目的静态文件目录创建一个新的文件夹,例如"element-ui",用于存储Element-UI的静态文件。 2. 在Element-UI的官方网站上下载最新版本的压缩文件,并将其解压。 3. 将解压后的Element-UI文件夹的"dist"文件夹的所有文件复制到步骤1创建的"element-ui"文件夹。这些文件包括CSS文件和JS文件。 4. 在Django的模版文件,添加Element-UI的CSS和JS文件的链接。例如,可以使用以下代码添加一个CSS链接: ```html <link rel="stylesheet" href="{% static 'element-ui/theme-chalk/index.css' %}"> ``` 5. 在Django的模版文件,使用Element-UI的组件。你可以根据需要选择合适的组件,例如按钮、表格、表单等。例如,可以使用以下代码添加一个按钮: ```html <el-button type="primary">按钮</el-button> ``` 6. 在Django的视图函数,处理Element-UI组件的相关逻辑。根据需要,可以使用Element-UI提供的API和事件来进行交互。 以上就是在Django使用Element-UI的基本步骤。通过这些步骤,你可以在Django项目集成Element-UI,并使用其丰富的组件和样式来开发漂亮和功能丰富的用户界面。 ### 回答3: 在Django使用Element-UI可以提供更好的用户界面和交互体验。Element-UI 是一个基于 Vue.js 的桌面端组件库,具有丰富的 UI 组件和样式。要在 Django 使用 Element-UI,需要按照以下步骤进行设置。 首先,需要将 Element-UI 的样式和脚本导入到 Django 的模板文件。可以通过在模板的 <head> 标签引入 Element-UI 的 CSS 样式文件和 JavaScript 脚本文件来完成。可以从 Element-UI 官方网站下载文件并将其保存在 Django 项目的静态文件目录。 其次,在 Django 的视图函数使用 Element-UI 的组件来构建用户界面。可以根据具体需求,在 Django 的模板文件使用 Element-UI 的组件,例如表单、按钮、弹窗等,来实现不同的交互功能。 另外,在 Django 的视图函数,可以通过 AJAX 请求与后台交互,实现数据的增、删、改、查等操作。Element-UI 提供了丰富的 AJAX 组件和工具,可以方便地与 Django 的后台进行数据交互。 最后,可以根据具体需求进行样式的调整和个性化定制。Element-UI 提供了多个主题和自定义样式的选项,可以根据自己的需求进行界面的美化和样式的调整。 综上所述,通过在 Django 使用 Element-UI,可以提升用户界面和交互体验,实现丰富的功能和样式。但需要注意的是,在使用 Element-UI 时要考虑和 Django 的框架结合,以兼容和保持项目的整体风格和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值