推荐用于本地Web应用程序的python库/框架?

时间:2010-12-28 04:14:19

标签: python windows web-applications self-contained

我想用Python创建一个简单的LOCAL Web应用程序。

Web服务器和“后端”代码将作为UI在同一系统(最初是Windows系统)上运行。我怀疑这很重要,但UI将是Google Chrome,HTML,CSS,JavaScript和jQuery的典型网络组合。

有一大堆基于Python的Web编程框架,但它们似乎都是为构建具有大量后端基础架构的复杂的大型应用程序而设计的。我想要相反:非常简单,轻量级,并且易于自包含 - 只需足够的Web服务器和框架来创建/支持本地Web应用程序。

建议?

10 个答案:

答案 0 :(得分:7)

我认为web2py可能是一个geat解决方案。它不需要安装,也没有依赖性(它甚至带有自己的Python解释器以及Web服务器和SQLite数据库)。您甚至可以distribute your application as a Windows or Mac binary(包括web2py),用户无需安装即可在本地轻松运行。

答案 1 :(得分:6)

Bottle是一个非常轻量级的微框架。它是一个单独的.py文件,没有外部依赖,支持路由,一个小模板引擎,并带有一个集成的网络服务器。它易于使用且纤薄。

这听起来完全符合您的要求:)

答案 2 :(得分:3)

自从我问这个问题以来,我写了一些这样的“本地网络服务器”应用程序。我没有最终的“哪个框架是最好的”答案,但我确实有一些见解:

  1. 简单或微框架确实是一个不错的选择。
  2. 我尝试过CherryPy和Flask框架。 Flask是简单明了的明显优势,基本的“设置一些AJAX服务页面”功能完全可以在Flask中编写。 CherryPy文档通常不透明,其设置复杂性显着提高。
  3. 我对Flask很满意,但我继续环顾四周。我特别想尝试一下瓶子,我已经看过非常高度评价,包括其他StackOverflow讨论和这种并排比较:http://www.slideshare.net/r1chardj0n3s/web-microframework-battle web2py看起来也值得一试。

答案 3 :(得分:2)

我已将BaseHTTPServer用于此目的。它是内置于Python标准库的Web服务器,可让您完全控制所提供的内容。

由于它是Python标准库的一部分,因此您不必担心任何特定于平台的配置。我在Windows,Linux和Mac OS X系统上使用了相同的本地服务器脚本而没有修改。

代码示例可能是:

import BaseHTTPServer

class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write("Hello world!")

server_address = ('', 8080)
httpd = BaseHTTPServer.HTTPServer(server_address, Handler)
httpd.serve_forever()

答案 4 :(得分:1)

标准库中的一个非常简单的服务器是wsgiref.simple_server

该示例看起来微不足道(demo_app也是模块的一部分):

from wsgiref.simple_server import make_server, demo_app

httpd = make_server('', 8000, demo_app)
print("Serving HTTP on port 8000...")

# Respond to requests until process is killed
httpd.serve_forever()

答案 5 :(得分:1)

我没有直接经验,但我听说过关于web2py的一些好消息:

Django vs web2py for a beginner developer

答案 6 :(得分:0)

一旦你设置了一些简单的配置,Pylons非常容易使用,你必须对你想要的东西有所了解。

答案 7 :(得分:0)

Django附带一个内置的Web服务器,允许您在本地(通过localhost:8080或类似的东西)完全测试您的应用程序。事实上,在将其部署到服务器之前,我已经多次使用它来在本地运行完整的Web应用程序。我认为没有理由不能将它用于您自己的本地网络应用程序目的。虽然看起来Django看起来很大而且很复杂,但这个解决方案是独立的并且易于运行:

  1. 安装Django
  2. 阅读很棒的教程,很快就会向您展示如何运行Web服务器
  3. 编写代码
  4. 就是这样。将其部署到其他计算机也很简单,尤其是virtualenv

    如果您根本不想要大型网络框架,我将不得不加入Greg的建议来使用BaseHTTPServer。我之前使用它来进行专门的本地应用程序,它运行良好,做到了它的预期而不是更多。这是一个非常灵活的解决方案,允许您根据需要构建非常自定义的东西。

答案 8 :(得分:0)

很可能,您需要一个管理界面来对某些数据库表进行基本的CRUD操作。 然后Django是你最好的选择。

答案 9 :(得分:0)

任何框架都会这样做。 Django肯定会这样做,但是因为你想要更小的东西,我建议使用BFG / Pyramid,它非常轻巧,极易扩展,灵活且有趣。但是还有很多其他的东西,如上所述,内置的wsgiref和你一样轻巧。 : - )