2011-10-24
flask是个微型web框架,基于werkzeug提供的基本wsgi和routing功能,扩展出比较完善的server view db访问模块。上手很容易 见友链flask网站的get start。。。
以下是源码学习笔记
---------------------------config.py ---------------------------------------------------
包含ConfigAttribute(object) Config(dict) 两个类
1 imp module
作用:提供一个接口,以import的类似机制 创建或加载module
使用方法:
建立文件tt.py
et = 0
st =et+1
在另一个文件中:
import imp
tt = imp.load_module('tt',file('tt.py'),'',('','',1))
print dir(tt)
print tt.et
print tt.st
2 execfile
无条件执行module 而不会创建新module
import os
filename = os.path.join('.', "tt.py")
d = imp.new_module('config')
d.__file__ = filename
print d.__dict__
execfile(filename, d.__dict__)
3 from __future__ import with_statement
---------------------------session.py ---------------------------------------------------
继承自werkzeug的 SecureCookie的两个类
---------------------------signals.py ---------------------------------------------------
定义几个signal
可使用消息分发组件blinker 或flask自定义消息机制
传递请求开始 结束之类的信号
---------------------------wrappers.py ---------------------------------------------------
base Request,Response
---------------------------module.py ---------------------------------------------------
Implements a class that represents module blueprints.
---------------------------blueprints.py ---------------------------------------------------
插件基础,扩展插件功能可继承自它
---------------------------ctx.py---------------------------------------------------
RequestContext 类 包含request相关的上下文信息,维持一个请求queue,
---------------------------testing.py ---------------------------------------------------
测试类
---------------------------templating.py ---------------------------------------------------
DispatchingJinjaLoader 类
加载 桥接jinja2模板,
render_template 等方法,渲染模板
---------------------------views.py ---------------------------------------------------
View 类 提供可选方案,替代注解方式的view action
---------------------------app.py ---------------------------------------------------
Flask 服务器类 重点关注 route映射 和 run(其实是调用werkzeug.serving模块的方法)