flask-webpack-cookiecutter
flask-webpack-cookiecutter copied to clipboard
Auto builds the foundation for a minimal Flask+Webpack application
flask-webpack cookiecutter
Builds the skeleton of a flask+webpack app.
- automatically constructs application skeleton
- automatically builds python-flask dependencies
- automatically builds node-webpack dependencies
- automatically sets up a fresh virtualenv environment
- automatically sets up a fresh git repository
Just run the following 4 commands and then open a browser to localhost:5000
, simple as that!
git clone https://github.com/mattfinnell/flask-webpack-cookiecutter <dirname>
cd <dirname>
source setup.sh
python wsgi.py
Was immediately featured as an Interesting Project in the Python Weekly Newsletter!.
Installation
git clone https://github.com/mattfinnell/flask-webpack-cookiecutter <dirname>
cd <dirname>
source setup.sh
This project assumes that you have the following usual suspects already installed
-
git
(...given) - A python environment with
python3
,pip
, andautoenv
. - A node environment with the
node
runtime andyarn
.
Everything else literally builds from there.
Running
# Start webpack-dev-server
yarn start
# Start python flask server
python3 wsgi.py
Dev vs Production Configurations
Environments can easily be changing between by these environment variables.
The build tool defaults to DevelopmentConfig
.
# .env possiblities
export FLASK_APP_CONFIG="config.DevelopmentConfig" # DEFAULT
export FLASK_APP_CONFIG="config.TestingConfig"
export FLASK_APP_CONFIG="config.StagingConfig"
export FLASK_APP_CONFIG="config.ProductionConfig"
Development
Run yarn start
and python3 wsgi.py
as separate processes for they are both servers.
-
Webpack-dev-server will serve files at
localhost:8080/static/build
-
Flask will run at
localhost:5000
- Flask will request for css, js, and other assets at
localhost:8080/static/build
Non-Development
Set FLASK_APP_CONFIG
to anything other than config.DevelopmentConfig
then run yarn build
(instead of start) and python3 wsgi.py
.
-
Webpack will build and place all files into
/website/static/build/
. -
Flask will run at
localhost:5000
- Flask will serve css, js and other assets from
localhost:5000/static/build
Node scripts
Run webpack-dev-server
yarn start
Run a webpack production build
yarn build
Continuously run production builds for experimentation, used for fine tuning webpack.prod.js
yarn exp
Todo
- Fix the
FLASK_APP_CONFIG
issue. - Add celery into the mix
- Create a better opening page