低门槛的Python Web框架
我想要一种类似LAMP或WAMP的体验。
希望这个过程非常简单明了。写好脚本后,按F5就能看到结果。尽量少用复杂的东西。
我会用到SQLAlchemy和(可能)一些简单的模板引擎。
我需要简单的环境访问,像PHP那样。比如COOKIE、SESSION、POST和GET这些对象。
我不想为了让网站运行而写一个中间层,也不想处理CGI的具体细节。
这个项目不需要太复杂,主要是给初学者或者刚开始学Python的程序员用。
使用MVC框架也可以考虑。我觉得ASP.NET MVC做得很好。我喜欢的一点是,POST过来的数据可以自动转换成数据模型对象,如果需要的话。
你能帮我吗?
谢谢!
PS:我在以前的帖子中没有找到符合这些要求的内容。
7 个回答
7
CherryPy 可能正是你需要的东西。它可以把网址直接映射到Python的函数上,并且处理所有的cookie和会话问题(当然还有POST和GET参数)。
它不是像Django或Rails那样的全功能解决方案。另一方面,这也意味着你不会被迫使用你不喜欢的模板引擎或ORM;你可以自由选择自己喜欢的工具。
它还包含一个符合WSGI标准的网络服务器,所以你甚至不需要Apache。
5
为了让入门更简单,web.py 非常轻量和简单。
它的特点:
- 部署很简单……只需把 web.py 文件夹复制到你的应用目录,然后启动服务器。
- 使用正则表达式来处理网址。
- 类的映射非常简单。
- 自带服务器(大多数框架都有这个功能)。
- 非常轻薄(至少从代码行数来看)的一层代码,覆盖在 Python 应用代码之上。
下面是它的 hello world 示例:
import web
urls = (
'/(.*)', 'hello'
)
app = web.application(urls, globals())
class hello:
def GET(self, name):
if not name:
name = 'world'
return 'Hello, ' + name + '!'
if __name__ == "__main__":
app.run()
虽然我从概念上很喜欢 Werkzeug,但在“你好,世界!”中写 wsgi 相关的代码真的很麻烦,这完全妨碍了展示一个应用。
不过,web.py 也不是完美的,对于大型项目来说,它可能不是合适的工具,因为:
- 路由风格的系统(我个人认为)比纯正则表达式的系统要好。
- 把 web.py 和其他中间件结合起来可能会有点冒险。