Python Web Framework——Bottle

  看到一个介绍Bottle的文章,觉得很有意思,所以到处搜罗了一些有意思的东西,总结如下。

  在浅谈五大Python Web框架(http://www.cnblogs.com/babykick/archive/2011/11/28/2265920.html)中介绍了几种Python的Web框架,然后又看了一下Web框架比拼测评(http://www.cichui.com/the-great-web-framework-shootout/),觉得Bottle和Flask很有意思,所以想了解一下。

  从下面的示例代码看看,你会喜欢哪一种呢?

web.py

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()

Flask,

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Bottle,

from bottle import route, run

@route('/:name')
def index(name='World'):
    return '<b>Hello %s!</b>' % name

run(host='localhost', port=8080)

  所以我就选了Bottle了,其他的Django这种大的框架没有考虑在内,其他语言的也没有考虑在内。

 

  顺便也了解了一下Web Framework和MVC到底是什么东西。

  Web FrameWork 和 MVC
  现在Web开发有各种技术,各种语言,各种框架。所谓框架,我的理解,就是一个通用的架构,这个架构把重复的工作,或者不变的工作解决,让开发人员集中在其他方面。现在好像说到Web框架,就会说到MVC。
  (MVC详解:了解真正所谓的"框架" http://cjwxd126715.iteye.com/blog/349678)
  MVC,Model-View-Control,因为Web上的应用越来越复杂,会有各种数据,会有各种页面显示,在最开始,用HTML写页面显示,涉及到交互数据,改变页面显示之类的时候,有Javacript或者Java代码等,嵌入到HTML中,后台也会有各种代码,处理数据,控制页面显示,这使得Web程序结构混乱。于是就希望使得Web开发更有逻辑,结构更清楚,有了MVC。数据,用Model来保存,View只控制与显示相关,Control,具体的处理数据。MVC中关于View的原意,“View里面只应该存在和显示有关的逻辑,而不应该存在任何其它的逻辑——比如访问数据库,调用业务逻辑之类”。
所有的MVC框架中,View部分做到了“只和显示逻辑相关” 吗?View能够脱离数据部分单独存在吗?不管是用JSP,Velocity,还是用TagLib,View都必须知道自己所使用的Object的数据结构,必须访问这些Object的各种属性,才能把它们显示出来。这个View和Model分开了吗?能分开吗?(MVC的迷思 http://www.iteye.com/topic/6284)

  (IoVC,一种新的编程思想 http://www.iteye.com/topic/176066)
  IoVC希望通过美工设计在View里面给每个组件设置一个ID,然后程序员在后台逻辑业务中可以通过ID对view中页面元素有完全的控制力。Web页面在美工完成之后,程序员再也无需因为需求的变更或者逻辑的变化,而再重新维护 Web页面内容。这个也很有意思的。

 

posted @ 2012-04-24 18:24  Frandy.CH  阅读(981)  评论(0编辑  收藏  举报