【问题标题】:overview of migrating python from the command line to a webpage将 python 从命令行迁移到网页的概述
【发布时间】:2014-02-08 22:31:54
【问题描述】:

我的编码经验完全是使用 python 和 c 的科学应用程序,总是从我的笔记本电脑或远程服务器集群上的命令行运行。我有一个命令行工具(它会根据用户输入进行一些简单的计算),我想将它移到网页上。用户将参数输入到文本字段中,输出将被计算和显示(数字,可能是一些图)。我不知道如何进行这种转变,而且我正沉浸在我在网上找到的所有内容中。 设置基于 Web 的 python 应用程序的基本大纲是什么?

特别是:

  • 网站是 html 格式;如何构建可以与计算代码交互的接口?
  • 这样的程序是否在我的服务器上运行(即用户发送参数、服务器计算、显示结果);还是可以将代码嵌入到页面中,然后在用户端运行?
  • 如果我的代码使用其他(非标准)库,如 numpy 或 scipy,是否可以包含这些库?
  • 如果我的代码使用大量数据(即数据库),设计模式将如何变化?这是Django进来的时候吗?

编辑:谷歌应用引擎?

【问题讨论】:

    标签: python django web-services web-applications


    【解决方案1】:

    您的问题有详细的答案,具体取决于您的要求。您应该定义您的要求并检查您的选择,然后选择一个最适合的。

    • 您可以使用 django 或更简单/更小的 Web 框架(如 bottle.py 或 flask)来完成每个 Web 项目所需的样板文件。 Django 是一个更大的框架,但它内置了用户/身份验证/授权、管理面板和许多其他好东西。
    • 您的程序几乎肯定会在您的服务器上运行,如果网页可以在客户端上运行程序,则会被认为存在安全风险。也就是说,您还有其他选择,例如 java applet、flash 等。或者,如果您可以将应用程序移植到 javascript,那么一切都是花花公子(不过我对此表示怀疑)。
    • 见我之前的回答。
    • 如果您正在执行需要很长时间的数据挖掘或类似工作,您可以将作业添加到队列中并让用户稍后看到输出。请参阅 celery 或类似的作业队列。除此之外,您可以使用关系数据库、像 mongodb 这样的非 SQL 数据库等,这一切都取决于您的要求。你的数据有多大?它本质上是相关的还是不相关的?这些都是你应该考虑的事情。

    【讨论】:

    • 谢谢@tayfun,这很有帮助。您能否详细说明“每个 Web 项目需要的一些样板文件”——这在很大程度上是我不清楚的……一个 Web 项目需要什么
    • 看看bottle.py或django。他们提供的一切在某些情况下都有帮助。在典型的 Web 项目中,您将需要 cookie 处理、管理面板、数据库连接池/管理、请求参数处理、用户表等。如果您不使用对其进行抽象的框架,则必须自己编写它们。
    【解决方案2】:

    Django - 或类似的网络框架 - 实际上在一开始就出现了。 Web 框架包括各种组件,但最重要的部分在第 2 步:获取参数并返回响应。许多,包括 Django,还包括满足步骤 1 和 4 的元素,即用于生成 HTML 的模板系统和数据库层。

    一般来说,它在 Django 中的工作方式是这样的。您将为您的项目定义一些 URL,并将它们与视图相关联,这些视图基本上是服务器上的 Python 代码。该视图将从 URL 获取参数并运行一些 Python,如果您的项目需要,可能包括 numpy/scipy。然后它会返回一个响应:该响应可能是通过模板系统生成的,或者可能是通过成像库等输出的图形。

    我认为让您了解这一切如何组合在一起的最佳方式是发送Django tutorial 以了解其工作原理。如有任何具体问题,请随时返回此处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 2016-09-24
      • 2011-06-30
      相关资源
      最近更新 更多