Modest utility collection for development with AIOHTTP framework.
Project description
Modest utility collection for development with AIOHTTP framework.
Documentation
Installation
Installing aiohttp-things with pip:
pip install aiohttp-things
Simple example
Example of AIOHTTP application
import json
import uuid
import aiohttp_things as ahth
from aiohttp import web
def safe_json_value(value):
try:
json.dumps(value)
return value
except (TypeError, OverflowError):
return str(value)
class Base(web.View, ahth.JSONMixin, ahth.PrimaryKeyMixin):
async def get(self):
self.context['Type of primary key'] = safe_json_value(type(self.pk))
self.context['Value of primary key'] = safe_json_value(self.pk)
return await self.finalize_response()
class IntegerExample(Base):
pk_adapter = int
class UUIDExample(Base):
pk_adapter = uuid.UUID
UUID = '[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}'
ROUTES = [
web.view('/integer/{pk:[0-9]+}', IntegerExample),
web.view(f'/uuid/{{pk:{UUID}}}', UUIDExample),
]
async def app_factory():
app = web.Application()
app.add_routes(ROUTES)
return app
if __name__ == '__main__':
web.run_app(app_factory())
Examples HTTP requests and response
http://0.0.0.0:8080/integer/1
{ "Type of primary key": "<class 'int'>", "Value of primary key": 1 }http://0.0.0.0:8080/integer/9999999999999
{ "Type of primary key": "<class 'int'>", "Value of primary key": 9999999999999 }http://0.0.0.0:8080/integer/a352da04-c1af-4a44-8a94-c37f8f37b2bc
404: Not Found
http://0.0.0.0:8080/integer/abc
404: Not Found
http://0.0.0.0:8080/uuid/a352da04-c1af-4a44-8a94-c37f8f37b2bc
{ "Type of primary key": "<class 'uuid.UUID'>", "Value of primary key": "a352da04-c1af-4a44-8a94-c37f8f37b2bc" }http://0.0.0.0:8080/uuid/13d1d0e0-4787-4feb-8684-b3da32609743
{ "Type of primary key": "<class 'uuid.UUID'>", "Value of primary key": "13d1d0e0-4787-4feb-8684-b3da32609743" }http://0.0.0.0:8080/uuid/1
404: Not Found
http://0.0.0.0:8080/uuid/abc
404: Not Found
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiohttp_things-1.2.post0.tar.gz.
File metadata
- Download URL: aiohttp_things-1.2.post0.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.8.0-90-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03461ab57be173a40d29051addae37274f99f82bb75fd54855b9b924a25c8a54
|
|
| MD5 |
38b56b16688720b70960176fc8cfefa7
|
|
| BLAKE2b-256 |
8a5029d6cf1ee65b2ee7524b4e95c69ecf2e8725f822ac2bdb21b79c3ed12fe4
|
File details
Details for the file aiohttp_things-1.2.post0-py3-none-any.whl.
File metadata
- Download URL: aiohttp_things-1.2.post0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.8.0-90-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8732236115692a8d4399045ab3d754d2c05205d4d1c400366011fd63d26297c
|
|
| MD5 |
2cd7291a9590399ede3eb7d42c5b4e1b
|
|
| BLAKE2b-256 |
d0ee08043a3b10d70831b8f68195c57d766f28f4a861e9b2a784e43123994b22
|