【问题标题】:Can Django use "external" python scripts linked to other libraries (NumPy, RPy2...)Django 可以使用链接到其他库(NumPy、RPy2...)的“外部”python 脚本吗?
【发布时间】:2010-09-23 08:21:13
【问题描述】:

我是 IT 业务(严肃)开发领域的新手,但我有一个商业想法,并且仍在尝试将整体基础架构的工作方式可视化。

我对提供解决方案的良好技术进行了一些研究。我非常倾向于在服务器端使用 Python、MySql、Django (Apache),在客户端使用一些 RIA(可能是 Flex),因为我需要一些高级可视化功能(尤其是在看到 FLARE 项目之后)。

该应用程序需要在数值/统计方面进行一些“举重”,并将 R 与 Python (RPy2) + 其他类似 NumPy 的集成似乎是理想的。

到目前为止我无法做到的事情(当然是因为我是新手)如下:

Django 可以(一种或另一种方式)执行包含对额外库(NumPy ...)的引用的(外部)python 脚本/程序吗?

ex:用户触发一个动作来执行统计分析,Django 接收到请求并应该运行一些 python 代码(使用 R,NumPy...),它使用数据库中的数据并将结果存储回数据库中。 Django 访问数据库数据并将其发送回客户端应用程序进行显示。

这是正确的逻辑还是我完全偏离了道路?

非常感谢您的专业知识。

【问题讨论】:

    标签: python mysql django


    【解决方案1】:

    Django 是一个 Python 程序。和任何其他 Python 程序一样,它将能够访问其他 Python 脚本/模块。那么问题是如何执行脚本。如果您的脚本明确定义了main(或另一个起点)函数,那么您只需像导入模块一样导入它并调用main

    例如:

    # my custom script. Located in my_script.py
    # lots of functions
    
    def main():
        # call functions in sequence.
    
    # my django view.
    from myscript import main as script_main
    script_main()
    

    如果您希望像从命令行一样执行,请查看subprocess 模块。如果您想异步运行它,那么Celery 之类的东西可能就是您要找的东西。

    【讨论】:

      【解决方案2】:

      如果你可以将它安装在服务器上并将其导入 python,那么你可以在 python 和 Django 中使用它。

      也就是说,如果

      import foo
      

      有效,那么也有效

      import foo
      
      foo.bar(fobaz)
      

      假设它可以在没有 Django 的情况下工作。此外,如果您尝试在 Django 之外发送 HTTP 标头或响应,您可能会遇到问题,但数字包不会做类似的事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多