Python中使用Framework的可扩展本地HTTP服务器

时间:2012-10-25 02:49:42

标签: python localhost web-frameworks httpserver

我正在尝试使用Python构建桌面应用程序。为了能够在尽可能多的平台上使用,我认为Web UI可能是一个不错的选择。这归结为首先创建本地HTTP服务器的问题。我做了一些调查,发现人们主要谈论BaseHTTPServer和SimpleHTTPServer。对于原型设计,对它们进行子类化可能就足够了。

除了纯粹的原型设计外,我还想留出一些扩展到真实服务的空间。也就是说,一旦成熟,我想将代码移动到真正的专用HTTP服务器,以便最终用户只需要浏览器即可使用它。

我在以下意义上说“可扩展”:

  • 在迁移过程中尽可能减少代码修改。
  • 我将专注于原型设计阶段的算法。我还想为未来的前端设计师留出一些空间。

看起来WSGI + Django是一个广泛提到的组合。经过一些搜索,我发现在apache或nginx中使用WSGI。是否可以使用自包含模块?即wsgiref + Django,这样我就可以从一个入口脚本开始一切。我不想通过要求他们安装apache并配置它来打扰潜在的第一代采用者。如果您有进一步阅读的示例代码或指针,那将是非常好的。

我是Python的Python和Web编程的新手。谢谢你的帮助。我只是想确保自己走在正确的轨道上。我的基础算法在Python 2.7中实现。因此UI解决方案最好也在Python 2.7中。

2 个答案:

答案 0 :(得分:0)

我认为您可能想要的是Bottle。它是一个只需要安装标准库的Web框架。它还与许多其他生产服务器兼容,并与其自己的开发服务器一起发货。如果这还不够好,它全部在单个文件中,并且支持许多不同的模板语言,以及它自己内置的模板语言。

请在此处查看:http://bottlepy.org/docs/dev/

答案 1 :(得分:0)

如上所述,瓶子是一个不错的选择,我个人喜欢Flask,如果我没记错的话就是瓶子的基础。无论如何,有三件事真的让Flask很高兴使用。

  • Blueprints - 本质上是一个应用程序架构
  • Flask-Sijax - 允许使用彗星技术
  • Celery - 基于分布式消息传递的异步任务队列/作业队列

还有很多其他的插件,包括一个我还没有尝试过的管理界面,但看起来很有前途,而且它适用于Python 2.7