Luk*_*ley 5 python web-applications cherrypy web.py
我喜欢webpy,它真的很Pythonic但我不喜欢添加url映射并创建一个类,通常只有一个函数在其中.我有兴趣尽快减少代码输入和原型设计.
有没有人有任何即将到来的建议,如Bobo,Nagare,Bottle,Flask,Denied,对于webpy的好事情的人来说,这是多么的好事?
是什么让它成为一个好理由?
另外我不介意遗漏(强烈)基于文本的模板系统,我使用面向对象的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
Run Code Online (Sandbox Code Playgroud)
极简主义的CherryPy目前看起来像是一个强有力的竞争者.还有最后一分钟会被另一个人保存吗?
Flask,Armin Ronacher建立在Werkzeug,Jinja2之上的微框架和良好的意图(尽管你可以使用你喜欢的任何模板引擎,或者根本没有),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)
Run Code Online (Sandbox Code Playgroud)
也许这就是你要找的东西?
CherryPy允许您在树中连接处理程序而不是正则表达式.web.py可能写的地方:
urls = (
'/', 'Index',
'/del/(\d+)', 'Delete'
)
class Index:
def GET(self): ...
class Delete:
def POST(self, id): ...
Run Code Online (Sandbox Code Playgroud)
等效的CherryPy将是:
class Delete:
def POST(self, id): ....
class Index:
del = Delete()
def GET(self): ...
Run Code Online (Sandbox Code Playgroud)
您甚至可以完全免除CherryPy中的课程:
def delete(id): ...
def index(): ...
index.del = delete
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6331 次 |
| 最近记录: |