具有低进入壁垒的Python web框架
我正在寻找一种轻佻/愚蠢的经历 非常透明的东西。编写脚本,点击F5并查看结果。很少,如果有抽象的话。 SQLAlchemy和(可能)一些简单的模板引擎将被使用 我需要对环境的简单访问-类似于PHP的方式。类似于COOKIE、会话、POST和GET对象具有低进入壁垒的Python web框架,python,Python,我正在寻找一种轻佻/愚蠢的经历 非常透明的东西。编写脚本,点击F5并查看结果。很少,如果有抽象的话。 SQLAlchemy和(可能)一些简单的模板引擎将被使用 我需要对环境的简单访问-类似于PHP的方式。类似于COOKIE、会话、POST和GET对象 我不想写一个中间件层仅仅为了让一些web服务启动并运行。我不想讨论CGI的细节 这并不适用于非常复杂的项目,而是适用于初级程序员和/或初级Python程序员 MVC框架不是不可能的。ASP.NETMVC做得很好。我喜欢的一件事是,如果需要,发布的数
我不想写一个中间件层仅仅为了让一些web服务启动并运行。我不想讨论CGI的细节 这并不适用于非常复杂的项目,而是适用于初级程序员和/或初级Python程序员 MVC框架不是不可能的。ASP.NETMVC做得很好。我喜欢的一件事是,如果需要,发布的数据会自动转换为数据模型对象 你能帮我吗 谢谢 PS:我在以前的帖子中没有找到任何符合这些标准的东西。看看:
- ,HTTP服务器调用Python代码的标准Python API
- ,一个流行的、功能丰富的、有良好文档记录的Python web框架
- ,一个最小的Python web框架
它包括一个兼容WSGI的web服务器,所以您甚至不需要Apache。在我看来,您所描述的最相似的东西。然而,Python/for Python中的web框架数量巨大——请参见列出并非常简要地描述每一个框架的尝试!) 对于低进入壁垒,非常轻且简单 特点:
- 轻松(开发)部署。。。将web.py文件夹复制到应用程序目录中,然后启动服务器
- 基于正则表达式的url映射
- 非常简单的类映射
- 内置服务器(当然大多数框架都有)
- python应用程序代码上非常薄的一层(至少以代码行来衡量)李>
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,在Hello,World中编写wsgi管道!非常令人不快,并且完全妨碍了应用程序的实际演示
也就是说,web.py并不完美,对于大型工作来说,它可能不是合适的工具,因为:
- routes样式系统(imho)优于纯正则表达式系统
- 将web.py与其他中间件集成可能是一种冒险
我们已经在SQLAlchemy上投入了一些工作,所以我想使用它。Django的问题是它只支持实验性的afaik。编辑:如果你真的喜欢SQLAlchemy,你可以尝试使用挂架。对SQL Alchemy的投资应该适用于Django ORM,不会有太多麻烦。有重写,但它的句法和次要。另外,当你从SA搬到Django的时候,你可以放下一些东西。别那么快,S.Lott!django中的复合主键和BLOB呢?“语法和次要”——我想这取决于您对SA的操作。我倾向于用SA做的事情通常不属于这一类。这种组合适合我。与SQLAlchemy结合使用时,您必须稍微小心一点,以获得正确的多线程处理。你可以使用这段代码来实现这一点(或者直接使用webpyte)+1,因为它不仅仅是一个简单的web应用程序框架,它也是编写RESTful服务的一个很好的介绍。“我不想编写一个中间件层只是为了启动和运行一些web服务。我也不想处理CGI的细节。”我不知道该如何解释:使用中间件(即web框架)来避免CGI的细节。你说的“中间件”是什么意思?你能举个例子吗?我不想处理我的应用程序和web服务器之间的接口。它应该会起作用。看过《werkzeug》后,我想我应该提一下。也许我对“中间件”这个词的选择是错误的,“它应该能工作”并没有多大意义。有一个接口。必须有人编写代码,通过该接口交换数据。我真的不明白这个问题——尽管如此——你能提供一些细节或一些示例代码来满足你的“just work”标准吗?回到Werkzeug的例子——有很多事情我不容易理解。部分原因是我不习惯Python语法。但另一部分是肯定很有意义的事情,但前提是你有相对较多的背景知识。(参见一些代码示例)在LAMP/WAMP中,您不必知道请求对象来自何处以及它们是如何创建的。您不必在服务器和应用程序之间建立这种连接。这就是我想要的。如果web.py出现在单独的评论中,我会投票支持它。我不想投票支持Django
from bottle import route, run
@route('/')
def index():
return 'Hello World!'
run(host='localhost', port=8080)
from bottle import route, request
@route('/submit', method='POST')
def submit():
name = request.POST.get('name', 'World')
return 'Hello %s!' % name