Skip to content

Freesia is a concise and lightweight async web framework that integrates some common components. ✨

License

Notifications You must be signed in to change notification settings

AuraiProject/freesia

Repository files navigation

freesia

Introduction

Freesia is a concise and lightweight async web framework. Its api is inspired by Flask.

Installation

pip install async-freesia

Docs

You can find the project's detailed API documentation on here.

Example

hello world

from freesia import Freesia

app = Freesia()

@app.route('/hello/<name>')
async def hello(request, name):
    return "Hello, " + name + "!"

if __name__ == "__main__":
    app.run()

middleware

from freesia import Freesia

app = Freesia()

@app.route("/<name>")
async def hello(request, name):
    print("enter user handler")
    return "hello, " + name


async def middleware1(request, handler):
    print("enter middleware1")
    res = await handler()
    print("exit middleware1")
    return res + " !"


async def middleware2(request, handler):
    print("enter middleware2")
    res = await handler()
    print("exit middleware2")
    return res + " :D"


app.use([middleware1, middleware2])

if __name__ == "__main__":
    app.run()

session

from freesia import Freesia, set_up_session, get_session, Response
from freesia.session import SimpleCookieSession

app = Freesia()

@app.route("/")
async def hello(request):
    s = await get_session(request)
    if "count" not in s:
        s["count"] = 1
        return Response(text="Hello, stranger!")
    else:
        s["count"] += 1
        return Response(text="I've seen you %d times" % s["count"])

if __name__ == "__main__":
    set_up_session(app, SimpleCookieSession)
    app.run()

More

You can see more exmaple and usags in docs and examples.

About

Freesia is a concise and lightweight async web framework that integrates some common components. ✨

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages