Flask Boilerplate to quickly get started with production grade flask application with some additional packages and configuration prebuilt.
- Python 3.9.2 or higher
# clone the repo $ git clone https://github.com/yezz123/Nectus.git # move to the project folder $ cd Nectus
Creating virtual environment
pipenva global python project
pip install pipenv
- Create a
virtual environmentfor this project
# creating pipenv environment for python 3 $ pipenv --three # activating the pipenv environment $ pipenv shell # if you have multiple python 3 versions installed then $ pipenv install -d --python 3.8 # install all dependencies (include -d for installing dev dependencies) $ pipenv install -d
- Create a
.env.sampleand set appropriate environment variables before running the project
APP_NAME=Nectus DB_HOST= # Host ex. localhost DB_DATABASE= # Database DB_USERNAME= # Username ex. Root DB_PASSWORD= # Password JWT_SECRET= # generate a JWT Secret UPLOAD_FOLDER = public FLASK_APP=main.py FLASK_ENV=development
Make sure the database name username, password and host have been set in the env
Migrate and upgrade database into your database management (for this case postgreeSQL)
flask db init flask db migrate -m "create new table" flask db upgrade
- If you feel that everything can be run, then run the Flash API
Running the Docker Container
- We have the Dockerfile created in above section. Now, we will use the Dockerfile to create the image of the flask app and then start the flask app container.
- list all the docker images and you can also see the image
nectus:latestin the list.
- run the application at port 5000. The various options used are:
-p: publish the container's port to the host port.
-d: run the container in the background.
-i: run the container in interactive mode.
-t: to allocate pseudo-TTY.
--name: name of the container
docker container run -p 5000:5000 -dit --name Nectus nectus:latest
- Check the status of the docker container
docker container ps
Includes preconfigured packages to kick start flask app by just setting appropriate configuration.
|python-dotenv||Reads the key-value pair from .env file and adds them to environment variable.|
|PyJWT||Python library which allows you to encode and decode JSON Web Tokens (JWT).|
yapf packages for
linting and formatting
This program is free software under MIT license. Please see the LICENSE file in our repository for the full text.