Metadata-Version: 2.1
Name: loquat
Version: 0.1.5
Summary: A simple web framework based on Tornado.
Home-page: https://github.com/guanzhenxing/loquat.git
Author: Jesen Kwan
Author-email: guan.zhenxing@foxmail.com
License: MIT
Keywords: tornado,web framework
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Database
Requires-Python: >=3.5.0
Description-Content-Type: text/markdown
Requires-Dist: tornado


# Loquat

A simple web framework based on Tornado.

## Introduce

Loquat is a web framework based on Tornado.

## Installation

```shell
pip install loquat
```

## Simple uses

```python
from loquat.middleware import BaseMiddleware, MiddlewareType
from loquat.server import Server
from loquat.web import Application

from handler import BaseHandler


class BeforeRequestMW(BaseMiddleware):

    def __init__(self, mw_order=0, mw_type=MiddlewareType.BEFORE_REQUEST):
        super().__init__(mw_order, mw_type)

    def should_run(self, handler, *args, **kwargs) -> bool:
        return True

    def run(self, handler, *args, **kwargs):
        print('run before_request_mw')


class AfterResponseMW(BaseMiddleware):

    def __init__(self, mw_order=0, mw_type=MiddlewareType.AFTER_RESPONSE):
        super().__init__(mw_order, mw_type)

    def should_run(self, handler, *args, **kwargs) -> bool:
        return True

    def run(self, handler, *args, **kwargs):
        print('run after_response_mw')


class IndexHandler(BaseHandler):

    def initialize(self, database):
        self.database = database

    def get(self):
        self.write("hello world!")


class TestApplication(Application):

    def __init__(self, handlers=None, middlewares=None, transforms=None):
        super().__init__(handlers, middlewares, transforms)


def main():
    handlers = [
        (r"/", IndexHandler, dict(database="this is database"))
    ]

    middlewares = [
        BeforeRequestMW,
        AfterResponseMW,
    ]

    application = TestApplication(handlers=handlers, middlewares=middlewares)
    server = Server(application, config={'port': 9000})
    server.start()


if __name__ == "__main__":
    main()

```

