Web applications 比web.py更高效的web框架?非常好喝!

Web applications 比web.py更高效的web框架?非常好喝!,web-applications,python,cherrypy,web.py,Web Applications,Python,Cherrypy,Web.py,我喜欢webpy,它真的很Pythonic,但我不喜欢添加url映射并创建一个类,通常只包含一个函数。 我对最小化代码类型和快速原型设计感兴趣 有没有人对webpy的好东西的爱好者有什么新的建议,比如Bobo、Nagare、瓶子、烧瓶、Denied、cherrypy 是什么让这成为一个很好的理由 此外,我不介意遗漏(强烈)基于文本的模板系统,我使用面向对象的HTML生成。代码应该能够如下所示: def addTask(task): db.tasks.append({'task':task

我喜欢webpy,它真的很Pythonic,但我不喜欢添加url映射并创建一个类,通常只包含一个函数。 我对最小化代码类型和快速原型设计感兴趣

有没有人对webpy的好东西的爱好者有什么新的建议,比如Bobo、Nagare、瓶子、烧瓶、Denied、cherrypy

是什么让这成为一个很好的理由

此外,我不介意遗漏(强烈)基于文本的模板系统,我使用面向对象的HTML生成。代码应该能够如下所示:

def addTask(task):
    db.tasks.append({'task':task,'done':False})
    return 'Task Added'
def listTasks():
    d = doc()
    d.body.Add(Ol(id='tasks'))
    for task in db.tasks:
        taskStatus = 'notDoneTask'
        if task.done: taskStatus = 'doneTask'
        d.body.tasks.Add(Li(task.task,Class=taskStatus))
    return d

极简主义CherryPy目前看起来是一个强有力的竞争者。另一个会在最后一分钟保存吗?

CherryPy允许您在树中连接处理程序,而不是正则表达式。其中web.py可能会写:

urls = (
    '/', 'Index',
    '/del/(\d+)', 'Delete'
)

class Index:
    def GET(self): ...

class Delete:
    def POST(self, id): ...
等效的樱桃糖是:

class Delete:
    def POST(self, id): ....

class Index:
    del = Delete()
    def GET(self): ...
您甚至可以完全不用CherryPy中的类:

def delete(id): ...
def index(): ...
index.del = delete

我是webpy的用户。最近,我找到了django,我觉得它很棒。您可以只关注您的业务逻辑,框架将为您做大多数事情

,Armin Ronacher的微框架构建在Werkzeug、Jinja2和good Intentials的基础上(尽管你可以使用任何你喜欢的模板引擎,或者根本不使用),URL映射非常简洁

@app.route("/")
def index():
  return """Hello, world. <a href="/thing/spam_eggs">Here's a thing.</a>"""

@app.route("/thing/<id>")
def show_thing(id):
  return "Now showing you thing %s."%id
  # (or:) return render_template('thing.html', id = id)
@app.route(“/”)
def index():
返回“你好,世界”
@app.route(“/thing/”)
def显示内容(id):
return“正在向您显示%s.%id
#(或:)返回呈现模板('thing.html',id=id)

也许这就是你想要的?

我正在寻找更轻的选项。如果Django的MVC系统和fumanchu的非MVC示例一样轻量级,那么它可能是一个竞争者。我非常了解Django,并希望超越它,所以在我的头脑中需要更少的东西来原型化和实际开发。简单、混合和匹配可能是这里的关键。我正在寻找所需的最小击键量。例如,Nagare可能比Django更接近,尽管它可能不像Cherrypy那样混搭。使用Django,您可以省去模型和模板,只需使用URLConf映射到视图即可。Django对于您需要编写的代码来说是非常轻量级的,同时提供了大量帮助器方法和类来进一步缩小代码。当然可以,但是为什么呢?谢谢。这比webpy的文本复制要少一点,但我想做得更好。我在问题中添加了一个例子。谢谢傅满初,我特别喜欢这个无类的例子。我还为这个问题添加了一个示例。我有点困惑,您如何从URL到示例中列出的函数。请看CherryPy示例,它与函数名的直观映射相同。所以/listTasks会显示任务。啊,我明白了。我想你可以做一些内省魔术来得到同样的东西,但这当然是一个讨厌的解决方案。哈,也许我最终会这样做,但希望获胜的框架会有更多的创新,而不仅仅是基于函数名的url映射。(比如一些数据库创新。)