A web framework based on ASGI
Project description
# Nardis
A web framework based on ASGI. This is inspired by the Express framework for node.js.
# Current status
This API is *extremely* experimental, and is subject to change at any time.
I do not recommend using it for production purposes, but I would love to get feedback.
# Requirements
Written with Python 3.7, no guarantee it will work on earlier versions (although I think 3.6 would work fine).
# Installation
## Via pip
Run the following:
```
$ pip install nardis
```
## From source
To build from source, clone this repo, and then:
```
$ python setup.py install
```
# Example
Here's a quick example you can use. Create an `application.py` and copy and paste this:
```python
from nardis.asgi import main
from nardis.routing import Get, Post
import asyncio
template_start = """
<!doctype html>
<head><title>example</title></head>
<body>
<h1>He's down!</h1>
"""
template_end = """
</body>
"""
async def index(req, res):
await res.send(template_start, more=True)
for x in range(10, 0, -1):
await res.send(f"<p>{x}!</p>", more=True)
await asyncio.sleep(1)
await res.send("<p>It's over. TKO!</p>", more=True)
await res.send(template_end)
routes = [
Get(r"^/?$", index),
]
app = main(routes) # this is the ASGI application
if __name__ == '__main__':
from uvicorn.run import run
run(app, '127.0.0.1', 8000)
```
And then:
```
$ python application.py
```
This should start a server on http://127.0.0.1
# Using other web servers
Uvicorn is currently a dependency of Nargis for local development.
Nargis should also work with other ASGI-based web servers, like Daphne.
To get Daphne working with the example code above, you could do the following:
```
$ daphne application:app
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nardis-0.0.3.tar.gz
(4.7 kB
view details)
Built Distribution
File details
Details for the file nardis-0.0.3.tar.gz
.
File metadata
- Download URL: nardis-0.0.3.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34878e806edc6e151caadd261342eb9cabc12297f1ac3cfa4867284358c03ee1 |
|
MD5 | fc72fa0ab4e314a3db17ccc08b9016e2 |
|
BLAKE2b-256 | e67e60ba8d5c4c06b78d49b26331c8f44d665988f1c9ab3b39d3fbee01734755 |
File details
Details for the file nardis-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: nardis-0.0.3-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce4485b126fbc002e6717d7e6b0f84e36b7f72ccf190176a8dd4daaa7dc5c485 |
|
MD5 | d2c0fea423611472083dfbd93ae7e4a5 |
|
BLAKE2b-256 | a26e80a332fcd225a3740da3f002c5271e85abe1e96a7e7fa66983a26f0ded0e |