Delicate Tornado Route Decorator.
Project description
Usage:
```python
import tornado.ioloop
import tornado.web
from toroute import route
@route('/')
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
@route('/login', name='login')
class LoginHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
self.write('login')
# group by `/blog`, e.g.: blog app
@route('/list', name='blog_list', kwargs={'data': 'hello'}, group='/blog')
class BlogListHandler(tornado.web.RequestHandler):
def initialize(self, **kwargs):
self.data = kwargs.get('data', None)
def get(self, *args, **kwargs):
self.write(self.data)
@route('/post', name='blog_post', group='/blog')
class BlogPostHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
print('post complete! redirect:%s' % route.url_for('blog_list'))
self.redirect(route.url_for('blog_list'))
@route(r'/view/(?P<pid>\d+)/detail', name='blog_view', group='/blog')
class BlogViewHandler(tornado.web.RequestHandler):
def get(self, pid, **kwargs):
msg = 'Handle Class for /blog/list is %s' \
% route.get_handler_class('/list', group='/blog').__name__
self.write(msg)
if __name__ == '__main__':
application = tornado.web.Application([
(r"/", MainHandler),
] + route.routes())
application.listen(8000)
tornado.ioloop.IOLoop.current().start()
```
```python
import tornado.ioloop
import tornado.web
from toroute import route
@route('/')
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
@route('/login', name='login')
class LoginHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
self.write('login')
# group by `/blog`, e.g.: blog app
@route('/list', name='blog_list', kwargs={'data': 'hello'}, group='/blog')
class BlogListHandler(tornado.web.RequestHandler):
def initialize(self, **kwargs):
self.data = kwargs.get('data', None)
def get(self, *args, **kwargs):
self.write(self.data)
@route('/post', name='blog_post', group='/blog')
class BlogPostHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
print('post complete! redirect:%s' % route.url_for('blog_list'))
self.redirect(route.url_for('blog_list'))
@route(r'/view/(?P<pid>\d+)/detail', name='blog_view', group='/blog')
class BlogViewHandler(tornado.web.RequestHandler):
def get(self, pid, **kwargs):
msg = 'Handle Class for /blog/list is %s' \
% route.get_handler_class('/list', group='/blog').__name__
self.write(msg)
if __name__ == '__main__':
application = tornado.web.Application([
(r"/", MainHandler),
] + route.routes())
application.listen(8000)
tornado.ioloop.IOLoop.current().start()
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
torroute-0.0.1.tar.gz
(1.4 kB
view details)
File details
Details for the file torroute-0.0.1.tar.gz
.
File metadata
- Download URL: torroute-0.0.1.tar.gz
- Upload date:
- Size: 1.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
43b74b6a271981fccdc444557cdf1ef4a0f455cd9f5e63add50415b9c5d7f0f1
|
|
MD5 |
30a5bb8250b77614d944c66c6234c558
|
|
BLAKE2b-256 |
a9b2b5f6b653ff074d961579e7277f4dc2b75e4fd7953c4042ab69d2249eab8d
|