gpt4 book ai didi

python - 在 python 中将 Django 与其他非 Web 系统集成

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:51 26 4
gpt4 key购买 nike

我有一个关于如何将 django 与其他非面向网络的子系统集成的理论问题。我不知道是否可以使用 django 开发此类系统,或者是否有其他最佳替代方案(另一个 Web 框架)。

我提出了一个符合此要求的可能系统以及我将开发的结构。

例如:

  • 一个非网络平台,其主要目的是在后台执行硬计算并将结果保存在数据库中。
  • 用于在后台管理这些服务的两个界面:命令行界面和 Web 界面(使用 django 或其他 Web 框架)

我对此架构的想法如下:

project_dir
| --- __init__.py
| --- main_system (eg: calculus, task in background, daemons...)
_____| --- __init__.py
_____| --- modules of this subsystem
| --- data_and_persistence
_____| --- __init__.py
_____| --- models (ORMs, SQL, ad hoc solutions,...)
| --- common_modules
_____| --- __init__.py
_____| --- auxiliar common modules
| --- command_line_interface
_____| --- __init__.py
_____| --- command_line_interface_modules
| --- web_interface
_____| --- __init__.py
_____| --- django project here
| --- test
_____| --- __init__.py
_____| --- test of all susbsystems

有以下几层(总结):

  • 持久层:管理数据库模型。
  • 两个接口(interface)和 main_system 之间共享的通用业务逻辑。
  • I/O 子系统:后台任务、命令行界面和 Web 界面。

我发现此解决方案存在一些问题:

  • Django 模块是硬耦合的,它们非常依赖于设置文件、环境路径...(例如:在 main_system 中使用 django orm)。
  • 我还没有找到测试整个平台的好方法。使用 discovery 和 Nose 的单元测试在创建测试数据库时遇到问题。 django-nose 依赖于 django (但我需要测试独立于它的另一个系统)。有没有一种好方法可以通过简单的命令执行所有单元和集成测试?

你会改变哪些事情?你会怎么做?

问候

最佳答案

听起来 Django/Celery 组合可以满足您的要求(除非您不想使用 Django)。

  • Django 为您提供了创建 custom actions 的能力脱离命令行。
  • Django 为您提供了 Web 界面。
  • Celery允许您异步进行硬计算。
  • 您将能够使用 Django ORM,因此无需多个模型定义。

关于python - 在 python 中将 Django 与其他非 Web 系统集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22880923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com