如何创建简单python脚本的Web界面?

Jon*_*han 28 python

我正在学习python.我创建了一些脚本,用于解析我每天运行的各种网站(因为他们的统计信息已更新),并查看Python解释器中的输出.我想创建一个网站来显示结果.我想要做的是在我访问网站时运行我的脚本,并显示一个可排序的结果表.

我已经看过Django了,并且是教程的一部分,但对于什么应该是一个简单的问题来说似乎是一个非常大的开销.我知道我可以编写一个Python脚本来输出简单的HTML,但这真的是最好的方法吗?我希望能够通过各种列对表进行排序.

我有多年的编程经验(C,Java等),但只有很少的Web开发经验.

提前致谢.

And*_*ewF 20

你考虑过烧瓶吗?像Tornado一样,它既是一个"微框架"又是一个简单的Web服务器,因此它拥有您开箱即用所需的一切.http://flask.pocoo.org/

这个例子(在主页右侧)几乎总结了代码的简单程度:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)


Bra*_*der 13

如果要创建非交互式页面,则可以轻松设置任何现代Web服务器以将CGthon脚本作为CGI执行.您的Web服务器将返回python脚本的输出,而不是加载静态文件.

这是不是很复杂,但是如果你简单地返回的输出,而不需要浏览器提交的日期,这是最简单的方法(负载下的比例是一个不同的故事).

如果您没有从浏览器接收任何数据,您甚至不需要python中的"cgi"模块.比这更复杂的东西你应该使用一个Web框架.

示例和其他方法

  • 简单示例:最难的部分是Web服务器配置
  • mod_python:减少CGI开销(否则,apache为每次命中执行python解释器)
  • python模块cgi:从浏览器向你的python脚本发送数据.

排序

Javascript端排序:我已经使用这个javascript库来添加可排序表.这是添加排序的最简单方法,无需额外的工作或其他HTTP GET.

说明:
下载此文件
添加到您的HTML
添加class ="sortable"到任何您想要排序的表
单击标题进行排序


jon*_*esy 8

如果Django开销太大,你可能会考虑龙卷风.我已经使用了两者并同意,如果你有一些简单/小事做,而且还不知道Django,它会以指数方式增加你的制作时间.另一方面,您可以在几个小时内"获得"龙卷风,并在一两天内完成相对简单的操作,而无需事先体验过.至少,这是我的经验.

请注意,Tornado仍然是一个权衡:你可以获得很多简单性来换取你获得的功能和快捷方式的巨大聚宝盆.

PS - 除了作为一个'微框架'之外,Tornado也是它自己的网络服务器,所以没有wsgi/mod-cgi/fcgi ....只需编写你的请求处理程序并运行它.请务必查看分发中包含的演示.


Tau*_*uir 7

你见过瓶子架吗?这是一个micro framework非常简单的.


Pit*_*tto 5

如果我正确理解了您的要求,您可能会发现 Wooey 非常有趣。

Wooey 是一个 Django 应用程序,可为 Python 脚本创建自动 Web UI: http ://wooey.readthedocs.org

您可以在这里查看演示: https: //wooey.herokuapp.com/