4W-Web101
~ 本周的任务涉及四大内容:框架、模板、样式、DB(数据库),我计划按照芝麻星的4W任务卡的提示问题为主要线索,记录4W任务的开发过程,这也是4W的笔记框架。
框架
本节要回答四个问题:
- 什么是框架?
- 为什么有框架?
- Python世界中有哪些框架?
- 为什么dama推荐Bottle ?
要回答什么是框架,得先搞清楚什么是 WSGI——这是一个Python Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI),它定义了Python网页开发的标准。每个开发者按照这个标准,写出自己的实现代码,方法各有千秋,其实有很多工作是重复的。把其中的主要实现方法提炼出来,程序员就可以根据这个代码快速实现自己的目标。这些预先定义并写好的功能性代码就是框架,框架的目的就是简化并标准化代码的开发过程,当然,不同的框架针对的问题也不同,所以Python世界中的框架有很多。
在Wiki上查到以下支持WSGI的Web应用框架
BlueBream, bobo, Bottle, CherryPy, Django, Flask, Google App Engine's webapp2, Gunicorn, prestans, Pylons, Pyramid, restlite, Tornado, Trac, TurboGears, Uliweb, web.py, web2py, weblayer, Werkzeug...
Bottle是一个微型的WSGI框架,它提供了 Python Web开发中需要的基本支持, 它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。Bottle适用于小型的Web开发,在应用程序规模比较小的情况下可以实现快速开发,因此比较适合本课程任务。
安装方法:pip install bottle
模板
- 什么是模板?
- 为什么有模板?
- Python 世界中有哪些模板?
- 为什么大妈推荐 Jinja2?
Web App最麻烦的部分就在HTML页面。HTML不仅要正确,还要通过CSS美化,再加上复杂的脚本来实现各种交互效果。于是出现了MVC设计模式,中文名“模型-视图-控制器”(Model-View-Controller)。通过MVC,我们在Python代码中处理Model和Controller,Python处理URL的函数就是Controller,Controller负责业务逻辑,Model负责数据(库)封装,而View负责通过处理显示逻辑,模板template方法用于渲染视图,这样就实现了Python代码和HTML代码分离。使用模板的另一个好处是,模板改起来很方便,而且,改完保存后,刷新浏览器就能看到最新的效果,这对于调试前端来说也极为方便有用。
Python 世界中有jinja2,cheetah,mako,webpy,bottle,tornado,django等模板。Bottle可以使用上述的模板引擎,Bottle 也内置了一个SimpleTemplate Engine 模板引擎。
Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。 它速度快,使用广泛,也许这是大妈推荐原因。
安装方法:sudo pip install Jinja2
样式
- 什么是样式?
- Bootstrap 的生态包含了什么?
- 为什么 Bootstrap 如此受欢迎?
- 有更加简洁的同类 样式 框架嘛? ->最小成本
DB
什么是 NoSQL ?
NoSQL 分哪些种类?
哪种最简单?
如何策略数据库结构?
如何迁移数据?
如何备份?