Makes it Easy to Manage Tornado Applications
Project description
Usernado
Makes it Easy to Manage Tornado :tornado: Applications
Explore the docs »
Why Usernado
I'm using 🌪️ every day. I really like it 😍 . Besides of all advantages of Tornado, it's not a full-stack framework, and I had to put all the pieces of the puzzle together every day 😩! So this is my attempt to follow DRY(Don't Repeat Yourself) principle. This is how the Usernado was born.
Features
-
REST support :zap:
-
Websocket easier than ever :zap:
-
ORM agnostic authentication :zap:
-
Humanize datetime in templates :zap:
-
Better exception printer thanks to tornado-debugger :zap:
Installation
Install either with pip or poetry.
pip install usernado
poetry add usernado
Or optionally you can install from github using
pip install git+https://github.com/reganto/usernado
Usage
Hello Usernado
from usernado.helpers import api_route
from usernado import APIHandler
from tornado import web, ioloop
@api_route("/hello", name="hello")
class Hello(APIHandler):
def get(self):
self.response({"message": "Hello, Usernado"})
def make_app():
return web.Application(api_route.urls, autoreload=True)
def main():
app = make_app()
app.listen(8000)
ioloop.IOLoop.current().start()
if __name__ == "__main__":
main()
For more examples please Check out examples.
Roadmap
- Send and broadcast for websockets
- Abstracted authentication methods
- Authenticaion methods should return True/False
- Add diff_for_human (humanize) decorator
- Add api_route for API handlers
- Add username & password to test login
- Add pluralize (str_plural) uimodule
- Add pagination :link:
Contact
Email: tell.reganto[at]gmail.com
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.