flask-realtime-restapi
flask-realtime-restapi copied to clipboard
A simple Flask application which combines the simplicity of Flask-RESTful to create/update data and the eficiency of Flask-SocketIO to comunicate with client web browsers for real time updates
Init virtual environment and Intall Python requirements
$ virtualenv .venv
$ . .venv/bin/activate
NOTE: On Windows $ . .venv/Scripts/activate
$ pip install -r requirements
Run the application
$ export FLASK_APP=main.py
$ flask run
Alternatively you can use python:
$ python main.py
Externally Visible Server
$ flask run --host=0.0.0.0
This tells your operating system to listen on all public IPs.
Debug mode
Debug mode will use the mock database instead of MongoDB.
$ export FLASK_DEBUG=1
$ flask run
(On Windows you need to use set instead of export).
Docker image
Download Docker image
docker pull blgo/flask-realtime-restapi:latest
Run Docker image
Start MongoDB or set FLASK_DEBUG to skip this command:
docker run --rm -p 27017:27017 -d mongo
Start Realtimeapp
docker run --rm -p 80:80 blgo/flask-realtime-restapi:latest
TODO
Websockets charts module should not call the database directly. It should usethe API module to retrieve sensor data, readings, etc. This will require running this module as a separate application, following a Microservices like architecture.
The application should be made out of 3 services: MongoDB <> REST API > Web UI & Websockets server (The Web UI is only for monitoring purposes and at the moment does not POST to the REST API)