add python demo example

This commit is contained in:
Muayyad alsadi 2022-05-10 02:28:17 +03:00
parent c175fd1b10
commit 75033a4ed7
6 changed files with 77 additions and 0 deletions

View File

View File

@ -0,0 +1,33 @@
import os
import asyncio
import aioredis
from aiohttp import web
REDIS_HOST = os.environ.get('REDIS_HOST', 'localhost')
REDIS_PORT = int(os.environ.get('REDIS_PORT', '6379'))
REDIS_DB = int(os.environ.get('REDIS_DB', '0'))
redis = aioredis.from_url(f"redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_DB}")
app = web.Application()
routes = web.RouteTableDef()
@routes.get('/')
async def hello(request):
counter = await redis.incr("mycounter")
return web.Response(text=f"counter={counter}")
@routes.get('/hello.json')
async def hello_json(request):
counter = await redis.incr("mycounter")
data = {'counter': counter}
return web.json_response(data)
app.add_routes(routes)
def main():
web.run_app(app)
if __name__=='__main__':
main()

View File

@ -0,0 +1,12 @@
FROM python:3.9-alpine
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python", "-m", "App.web" ]
EXPOSE 8080

View File

@ -0,0 +1,8 @@
# Simple Python Demo
## A Redis counter
```
podman-compose up -d
curl localhost:8080/
curl localhost:8080/hello.json
```

View File

@ -0,0 +1,21 @@
---
version: '3'
volumes:
redis:
services:
redis:
read_only: true
image: docker.io/redis:alpine
command: ["redis-server", "--appendonly", "yes", "--notify-keyspace-events", "Ex"]
volumes:
- redis:/data
web:
read_only: true
build:
context: .
image: hello-py-aioweb
ports:
- 8080:8080
environment:
REDIS_HOST: redis

View File

@ -0,0 +1,3 @@
aiohttp
aioredis
# aioredis[hiredis]