twork
twork copied to clipboard
twork is a Tornado application frameWORK
twork
twork is a Tornado Application FrameWork, it supports plug-in module injection, the module called TworkApp.
Features
Plug-in
- TworkApp as a plug-in injected to Twork
Web App Framework
- Control(WebApplication)/Model(RequestHandler) separation, users simply writing Handler Model
- Web RequestHandler should be Inherited from twork.web.action.base.BaseHandler
Unified Infrastructure
- Web access logging
- Status statistics
- Overload protection
- IP checking
- Others
Open Design
- Not only for web application framework
- Can be directly embedded other control model, like that the custom protcol server-app
- Custom Logging Support
Scaffold Support
- Build your own Tornado Application
- As a app module injected to twork
Easy Maintainable
- Script Tools: log cut, log reopen, tworkd kill and others
- Consistent process name: twork::hello/1.0.0.0
Usage
Environment
virtualenv is recommend.
- virtualenv is a tool to create isolated Python environments
- Initialize and enter the app virtualenv
- For example, creating the hello application here
Install twork
TworkApp Build
Create your own tornado application based on twork.
- twork-admin -app=hello -prefix=~/workspace
- cd ~/workspace
Web Handler(Optional)
- write your web request handler in hello/hello/web/action directory, the handler should be Inherited from twork.web.action.base.BaseHandler
- add uri:handler map to HANDLERS in hello/hello/app/handlers.py
Run TworkApp within twork
- make install
- tworkd -app_module=hello.app OR tworkd -config_file=conf/twork.conf
Access the web server
- http://localhost:8000/v1.0/hello/stats
- http://localhost:8000/v1.0/twork/stats
Check Htpp Response
- Server: TWS/2.0.1
- TworkApp: HELLO/1.0.0
Requirements
The following libraries are required
- tornado==4.2.1
- setproctitle==1.1.8
- nose==1.3.3
Issues
Please report any issues via github issues