HUE 二次开发

博客围绕Hue展开,一是因项目需在Hue上暴露HTTP接口,研究发现登录验证由LoginAndPermissionMiddleware类控制,可在process_view方法中判断请求URL,若为免登录接口则返回None;二是介绍了在Hue中增加ORM映射的步骤,包括继承Django的model类、生成迁移文件和修改数据。

1.背景:因项目需要在hue上暴露一些http接口,但是hue有登录验证,当访问这些接口时被拦截到了hue的登录界面。于是

  研究查询资料找到这个登录验证是由desktop app中middleware.py里面   LoginAndPermissionMiddleware类控制的。文件位置:  hue/desktop/core/src/desktop/middleware.py 。关键代码

class LoginAndPermissionMiddleware(object):
  """
  Middleware that forces all views (except those that opt out) through authentication.
  """
  def process_view(self, request, view_func, view_args, view_kwargs):
    """
    We also perform access logging in ``process_view()`` since we have the view function,
    which tells us the log level. The downside is that we don't have the status code,
    which isn't useful for status logging anyways.
    """
    request.ts = time.time()
    request.view_func = view_func
    access_log_level = getattr(view_func, 'access_log_level', None)
    # First, skip views not requiring login

    # If the view has "opted out" of login required, skip
    if hasattr(view_func, "login_notrequired"):
      log_page_hit(request, view_func, level=access_log_level or logging.DEBUG)
      return None

process_view如果返回None,就不会被拦截到登录界面。所以在此方法中通过参数request获得请求的url,判断这个url是否为自己想要免登录开放的接口,如果是则返回None即可。

 

2.hue增加ORM映射

   a.首先通过继承Django的model类,来实现增加模型TestTable

   b.使用下面的命令产生迁移文件,如下命令是给项目中desktop的app生成模型TestTable对应的数据库迁移文件:

     ./hue schemamigration desktop --add-model TestTable    

     生成的数据库迁移文件会存于APP的migrations文件夹下

    c.使用如下命令按照上面生成的迁移文件修改数据:

        ./hue  migrate

      

### ANSYS 中等效应力计算的二次开发方法 在探讨 ANSYS 的等效应力 (Equivalent Stress) 计算及其二次开发之前,了解其基本原理至关重要。ANSYS 提供了丰富的编程接口用于定制化需求处理,特别是对于那些希望通过自动化流程来增强效率的研究人员和工程师而言。 #### 使用 Python API 实现等效应力自动提取与报告生成 为了实现这一目标,可以借助于 ANSYS 提供的强大 Python 接口 PyMAPDL 来完成数据读取、处理以及最终的结果展示。下面将详细介绍如何利用该接口来进行等效应力的相关操作: 1. **初始化环境** 首先需要安装必要的库文件并启动 MAPDL 服务端实例。 ```bash pip install ansys-mapdl-core pandas matplotlib seaborn openpyxl ``` 2. **连接至 ANSYS 并加载已有结果文件** 下面展示了怎样建立同本地或远程服务器之间的链接,并打开指定的工作目录下的 .rst 文件以便后续访问其中存储的数据集。 ```python import ansys.mapdl.core as pymapdl mapdl = pymapdl.launch_mapdl() # 启动新的 Mapdl 进程 mapdl.loadfile('path/to/your/file.rst') # 加载结果文件 ``` 3. **获取节点编号列表及对应位置坐标** 此步骤目的在于收集所有参与分析单元所属顶点的信息,这对于之后定位特定区域内的应力分布情况十分必要。 ```python nodes_df = mapdl.mesh.nodes_as_pd.DataFrame() coords = nodes_df[['X', 'Y', 'Z']].values.tolist() node_ids = nodes_df.index.values.tolist() ``` 4. **查询各节点处的最大主应力分量值** 对每一个结点执行 `POST1` 命令序列以检索 Von Mises 应力(即所谓的“等效”应力),并将所得数值存入 Pandas DataFrame 结构内便于管理。 ```python stress_data = [] for nid in node_ids: result = mapdl.post_processing.nodal_eqv_stress(nid=nid) stress_data.append([nid, *result]) df_stresses = pd.DataFrame(stress_data, columns=['NodeID', 'VonMisesStress']) ``` 5. **绘制图表辅助理解数据特征** 可视化的手段有助于直观感受不同部位所承受的压力状况;此处选用 Seaborn 绘制热图表示空间三维视角下各个采样点间的相对大小关系。 ```python plt.figure(figsize=(8,6)) sns.scatterplot(x='X', y='Y', hue='VonMisesStress', palette="viridis", data=df_stresses.merge(nodes_df, left_on='NodeID', right_index=True)) plt.title('Spatial Distribution of Equivalent Stresses') plt.show() ``` 6. **导出 Excel 表格形式保存记录** 将整理好的表格写入外部电子表格文档中长期留存备查,同时也利于与其他办公软件集成应用。 ```python output_path = './equivalent_stress_report.xlsx' with pd.ExcelWriter(output_path) as writer: df_stresses.to_excel(writer, sheet_name='Summary', index=False) print(f'Report saved at {os.path.abspath(output_path)}') ``` 以上过程不仅实现了对原始模拟成果的有效解析,还构建了一套完整的从输入到输出的一站式解决方案框架,极大地方便了科研工作者日常工作中涉及到大量相似任务场景的操作[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值