/torngas

基于tornado的django like框架,增加了session支持,cache(memcache,redis)支持,middleware支持,子应用支持,集成了jinja2和mako模版,可自由切换,django like的配置文件

Primary LanguagePython

TornGas

基于tornado的django like框架

增加了以下功能:

  • session支持:默认支持process cache,可使用memcache,redis,file等多种方式的session backend,依赖于cache模块
  • cache支持:基于django的cache模块,增加了redis缓存支持,缓存类型分为:file文件缓存,dummy缓存(nocache,仅实现接口,方便调试),memcache,redis,本地缓存
  • 多线程异步handler:multithreading模块增加了对线程异步的支持
  • signals信号:来自django的signals模块
  • handler:内置webhandler和apihandler,webhandler对tornado的RequestHandler进行了扩展
  • mixin:增加了类似flask的FlashMixin,以及处理未捕获异常的错误页UncaughtExceptionMixin
  • torngas.utils:内置了来自web.py,django的部分实用utils
  • 中间件支持:默认自带一个session中间件,可自行编写和扩展中间件,只要继承实现middleware下的BaseMiddleware类即可
  • 配置文件:仿照django的配置文件方式,默认支持三份配置文件,devel,functest和production,根据config参数决定使用哪一个,方便线上线下的配置切换
  • 模板引擎:集成了jinja2和mako,可在配置文件中进行切换,根据喜好选择最合适的模板引擎
  • SQLAlchemy:集成了ORM组件,支持master/slave模式 通过create_torngas.py 命令可以建立一个最基础的torngas应用"app"
  • app下有一个子应用Main,可建立多个子应用
  • 子应用配置在配置文件中的INSTALLED_APPS配置节中(应用名区分大小写),模板加载目录配置为APPS_TEMPLATES_DIR
  • 应用的路由配置方式见示例。

目前框架还在持续迭代开发,后续考虑将web.py的db模块或者sqlalchemy集成进来,框架可能不够完善,欢迎拍砖,也算为开源 社区尽点微薄之力。 torngas参考和借鉴了django,web.py,flask,mako,tinman,lepture,felinx等项目或作者的开源实现,在此十分感谢。