• 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页面内容。这个也很有意思的。

     

  • 相关阅读:
    理性即自由
    解决问题的思路是怎样的?
    联系的结构-深度思考
    思考力,才是真正的第一生产力-快思考、慢思考
    CentOS7在防火墙与端口上的操作
    linux如何查看nginx是否启动
    Git篇
    Git 常用命令总结
    siblings() 获得匹配集合中每个元素的同胞
    Mysql查看版本号的五种方式介绍
  • 原文地址:https://www.cnblogs.com/Frandy/p/python_web_bottle.html
Copyright © 2020-2023  润新知