/webapp

Web application testing.

Primary LanguagePython

Flask on Heroku

This project is intended to help you tie together some important concepts and technologies from the 12-day course, including Git, Flask, JSON, Pandas, Requests, Heroku, and Bokeh for visualization.

The repository contains a basic template for a Flask configuration that will work on Heroku.

A finished example that demonstrates some basic functionality.

Step 1: Setup and deploy

  • Git clone the existing template repository.

  • Procfile, requirements.txt, conda-requirements.txt, and runtime.txt contain some default settings.

  • There is some boilerplate HTML in templates/

  • Create Heroku application with heroku create <app_name> or leave blank to auto-generate a name.

  • (Suggested) Use the conda buildpack. If you choose not to, put all requirements into requirements.txt

    heroku config:add BUILDPACK_URL=https://github.com/kennethreitz/conda-buildpack.git

  • Question: What are the pros and cons of using conda vs. pip?

  • Deploy to Heroku: git push heroku master

  • You should be able to see your site at https://<app_name>.herokuapp.com

  • A useful reference is the Heroku quickstart guide.

Step 2: Get data from API and put it in pandas

  • Use the requests library to grab some data from a public API. This will often be in JSON format, in which case simplejson will be useful.
  • Build in some interactivity by having the user submit a form which determines which data is requested.
  • Create a pandas dataframe with the data.

Step 3: Use Bokeh to plot pandas data

  • Create a Bokeh plot from the dataframe.
  • Consult the Bokeh documentation and examples.
  • Make the plot visible on your website through embedded HTML or other methods - this is where Flask comes in to manage the interactivity and display the desired content.
  • Some good references for Flask: This article, especially the links in "Starting off", and this tutorial.