Skip to content

RafaelMiquelino/dash-flask-login

Repository files navigation

dash-flask-login

dash-flask-login

This is an example of Flask-login implementation on top of a Dash application for users authentication.

The example comes with users authentication through a sqlite3 database, however you can use your own database by changing the con parameter with your database URI in the config.txt file.

The example comes with the a standard username test and password test1 but you can add more users using the add_remove_users.ipynb jupyter notebook or the functions available in the users_mgt.py.

Files description:

add_remove_users.ipynb: A jupyter notebook to help creating and removing users
app.py: The app initial screen
config.py: python script to initialize the configuration included in the config.txt file
config.txt: configuration file
requirements.in: input configuration file to be used together with pip-tools
requirements.txt: configuration file generated bypip-tools
server.py: the app initialization file
users.db: sqlite3 database with user information
users_mgt.py: helper file for the user management process

Running an app locally

To run an app locally:

  1. (optional) create and activate new virtualenv:
pip install virtualenv
virtualenv venv
source venv/bin/activate
  1. pip install -r requirements.txt
  2. flask run or gunicorn wsgi:application
  3. open http://127.0.0.1:5000 in your browser or
  4. flask run --host=0.0.0.0 or gunicorn --bind 0.0.0.0:8000 wsgi:application to open for external connections

Deployng to Heroku

  1. Install Heroku CLI: https://devcenter.heroku.com/articles/heroku-cli
  2. Login to your heroku account: heroku login
  3. Create the app: heroku create
  4. Deploy to Heroku: git push heroku master
  5. Access the app via the address provided by Heroku

Contributing

PRs accepted! Please contribute if you believe this example can be improved.