我想用Python创建一个简单的LOCAL Web应用程序。
Web服务器和“后端”代码将作为UI在同一系统(最初是Windows系统)上运行。我怀疑这很重要,但UI将是Google Chrome,HTML,CSS,JavaScript和jQuery的典型网络组合。
有一大堆基于Python的Web编程框架,但它们似乎都是为构建具有大量后端基础架构的复杂的大型应用程序而设计的。我想要相反:非常简单,轻量级,并且易于自包含 - 只需足够的Web服务器和框架来创建/支持本地Web应用程序。
建议?
答案 0 :(得分:7)
我认为web2py可能是一个geat解决方案。它不需要安装,也没有依赖性(它甚至带有自己的Python解释器以及Web服务器和SQLite数据库)。您甚至可以distribute your application as a Windows or Mac binary(包括web2py),用户无需安装即可在本地轻松运行。
答案 1 :(得分:6)
Bottle是一个非常轻量级的微框架。它是一个单独的.py文件,没有外部依赖,支持路由,一个小模板引擎,并带有一个集成的网络服务器。它易于使用且纤薄。
这听起来完全符合您的要求:)
答案 2 :(得分:3)
自从我问这个问题以来,我写了一些这样的“本地网络服务器”应用程序。我没有最终的“哪个框架是最好的”答案,但我确实有一些见解:
答案 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的一些好消息:
答案 6 :(得分:0)
一旦你设置了一些简单的配置,Pylons非常容易使用,你必须对你想要的东西有所了解。
答案 7 :(得分:0)
Django附带一个内置的Web服务器,允许您在本地(通过localhost:8080
或类似的东西)完全测试您的应用程序。事实上,在将其部署到服务器之前,我已经多次使用它来在本地运行完整的Web应用程序。我认为没有理由不能将它用于您自己的本地网络应用程序目的。虽然看起来Django看起来很大而且很复杂,但这个解决方案是独立的并且易于运行:
就是这样。将其部署到其他计算机也很简单,尤其是virtualenv
。
如果您根本不想要大型网络框架,我将不得不加入Greg的建议来使用BaseHTTPServer
。我之前使用它来进行专门的本地应用程序,它运行良好,做到了它的预期而不是更多。这是一个非常灵活的解决方案,允许您根据需要构建非常自定义的东西。
答案 8 :(得分:0)
答案 9 :(得分:0)
任何框架都会这样做。 Django肯定会这样做,但是因为你想要更小的东西,我建议使用BFG / Pyramid,它非常轻巧,极易扩展,灵活且有趣。但是还有很多其他的东西,如上所述,内置的wsgiref和你一样轻巧。 : - )