我是IT业务(严肃)开发领域的新手,但我想到了一个商业创意,并且仍然试图模仿整个基础架构应该如何运作。
我已经做了一些关于提供解决方案的好技术的研究。我非常倾向于在服务器端使用Python,MySql,Django(Apache),在客户端使用一些RIA(可能是Flex),因为我需要一些高级可视化功能(特别是在看到FLARE项目之后)。
应用程序需要在数值/统计方面进行一些“提升”,并将R与Python(RPy2)+其他类似NumPy集成似乎是理想的。
到目前为止我无法得到的东西(当然是因为我是新手)如下:
Django(一种或另一种)可以执行一个(外部)python脚本/程序,它包含对额外库(NumPy ...)的引用吗?
例如:用户触发执行统计分析的动作,Django接收请求并应运行一些python代码(使用R,NumPy ...),它使用数据库中的数据并将结果存储回DB中。 Django访问数据库数据并将其发送回客户端应用程序以进行显示。这是正确的逻辑还是我完全偏离了道路?
非常感谢您的专业知识。
答案 0 :(得分:5)
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之类的东西可能就是你想要的。
答案 1 :(得分:1)
如果您可以将它安装在服务器上并将其导入到python中,那么您可以在python中使用它,因此可以在Django中使用它。
也就是说,如果
import foo
有效,那么
import foo
foo.bar(fobaz)
假设没有 Django它将工作。此外,如果您尝试在Django之外执行发送HTTP标头或响应的操作,则可能会遇到问题,但数字包不会执行此类操作。