/boilerplate-dmc-api

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Example Boilerplate

A DMC, Flask and API template.

Install

PyPI

Install and update using pip:

pip install -U example

Repository

When using git, clone the repository and change your present working directory.

git clone http://github.com/johnsmith/example
cd template/

Create and activate a virtual environment.

python3 -m venv venv
source venv/bin/activate

Install LibreHTF to the virtual environment.

pip install -e .

Commands

db-init

The Sqlite3 database can be initialized or re-initialized with the following command.

flask —app example init-db

Deployment

Before deployment, we strongly encourage you to override the default SECRET_KEY variable. This can be done by creating a conf.py file and placing it in the same root as the instance (i.e. typically where the SQLite database resides).

SECRET_KEY =192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf

There are a number of ways to generate a secret key value. The simplest would be to use the built-in secrets Python library.

$ python -c ‘import secrets; print(secrets.token_hex())’
‘192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf’

Waitress

Production WSGI via waitress.

pip install waitress
waitress-serve —call example:create_app

Test

python3 -m unittest

Run with coverage report.

coverage run -m unittest
coverage report
coverage html  # open htmlcov/index.html in a browser