A concise and lightweight web framework.✨
Project description
![freesia](./images/logo.png)
## Introduction
Freesia is a concise and lightweight async web framework. Its api is inspired by Flask.
## Installation
```bash
pip3 install asyncfreesia
```
## Docs
You can find the project's detailed API documentation on [here](https://freesia.readthedocs.io/en/latest/?).
## Example
*hello world*
```python
from freesia import Freesia
app = Freesia()
@app.route('/hello/<name>')
async def hello(request, name):
return "Hello, " + name + "!"
if __name__ == "__main__":
app.run()
```
*middleware*
```python
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*
```python
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](https://freesia.readthedocs.io/en/latest/?) and [examples](./examples).
## Introduction
Freesia is a concise and lightweight async web framework. Its api is inspired by Flask.
## Installation
```bash
pip3 install asyncfreesia
```
## Docs
You can find the project's detailed API documentation on [here](https://freesia.readthedocs.io/en/latest/?).
## Example
*hello world*
```python
from freesia import Freesia
app = Freesia()
@app.route('/hello/<name>')
async def hello(request, name):
return "Hello, " + name + "!"
if __name__ == "__main__":
app.run()
```
*middleware*
```python
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*
```python
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](https://freesia.readthedocs.io/en/latest/?) and [examples](./examples).
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
aysncfreesia-0.0.2.tar.gz
(18.5 kB
view details)
File details
Details for the file aysncfreesia-0.0.2.tar.gz
.
File metadata
- Download URL: aysncfreesia-0.0.2.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.23.4 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c76b7603f295f19c673f66a970cfe3e0dd3110f65738902a5570ae9d7ecd527 |
|
MD5 | 1b7f340c77b077bbcff9c1956c037b7c |
|
BLAKE2b-256 | 91859ef377169e81c490a79840e4d533a5c9e0a9e3107168e2007ec640f99870 |