将python从命令行迁移到网页的概述

时间:2014-01-19 20:44:32

标签: python django web-services web-applications

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

特别是:

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

编辑:谷歌应用引擎?

2 个答案:

答案 0 :(得分:1)

您的问题有长而详细的答案,这取决于您的要求。您应该定义您的要求并检查您的选择并选择最适合的要求。

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

答案 1 :(得分:1)

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

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

我认为,最好的方法是看看这一切是如何组合在一起的,就是Django tutorial来了解它是如何工作的。然后随时回答任何具体问题。