A simple Flask boilerplate app with SQLAlchemy, Redis, User Authentication, and more.
A Flask application template with the boilerplate code already done for you.
Documentation available at http://hack4impact.github.io/flask-base.
- User and permissions management
- Flask-SQLAlchemy for databases
- Flask-WTF for forms
- Flask-Assets for asset management and SCSS compilation
- Flask-Mail for sending emails
- gzip compression
- Redis Queue for handling asynchronous tasks
- ZXCVBN password strength checker
- CKEditor for editing pages
Admin Editing Page:
Admin Editing Users:
Clone the repo
$ git clone https://github.com/longniao/flask-base.git $ cd flask-base
Initialize a virtualenv
$ pip install virtualenv $ virtualenv -p /path/to/python3.x/installation env $ source env/bin/activate
For mac users it will most likely be
$ pip install virtualenv $ virtualenv -p python3 env $ source env/bin/activate
Note: if you are using a python2.x version, point the -p value towards your python2.x path
(If you’re on a mac) Make sure xcode tools are installed
$ xcode-select --install
Add Environment Variables
Create a file called config.env that contains environment variables in the following syntax: ENVIRONMENT_VARIABLE=value. You may also wrap values in double quotes like ENVIRONMENT_VARIABLE="value with spaces". For example, the mailing environment variables can be set as the following. We recommend using Sendgrid for a mailing SMTP server, but anything else will work as well.
MAIL_USERNAME=SendgridUsername MAIL_PASSWORD=SendgridPassword SECRET_KEY=SuperRandomStringToBeUsedForEncryption
Other Key value pairs:
- ADMIN_EMAIL: set to the default email for your first admin account (default is email@example.com)
- ADMIN_PASSWORD: set to the default password for your first admin account (default is password)
- DATABASE_URL: set to a postgresql database url (default is data-dev.sqlite)
- REDISTOGO_URL: set to Redis To Go URL or any redis server url (default is http://localhost:6379)
- RAYGUN_APIKEY: api key for raygun (default is None)
- FLASK_CONFIG: can be development, production, default, heroku, unix, or testing. Most of the time you will use development or production.
Note: do not include the ``config.env`` file in any commits. This should remain private.
Install the dependencies
$ pip install -r requirements.txt
Other dependencies for running locally
$ gem install sass
Mac (using `homebrew <http://brew.sh/>`__):
$ brew install redis
$ sudo apt-get install redis-server
You will also need to install PostgresQL
Mac (using homebrew):
brew install postgresql
Linux (based on this `issue <https://github.com/hack4impact/flask-base/issues/96>`__):
sudo apt-get install libpq-dev
Create the database
$ python manage.py recreate_db
Other setup (e.g. creating roles in database)
$ python manage.py setup_dev
Note that this will create an admin user with email and password specified by the ADMIN_EMAIL and ADMIN_PASSWORD config variables. If not specified, they are both firstname.lastname@example.org and password respectively.
[Optional] Add fake data to the database
$ python manage.py add_fake_data
Running the app
$ source env/bin/activate $ honcho start -f Local
For Windows users having issues with binding to a redis port locally, refer to this issue.
Before you submit changes to flask-base, you may want to autoformat your code with python manage.py format.
To make changes to the documentation refer to the Mkdocs documentation for setup.
To create a new documentation page, add a file to the docs/ directory and edit mkdocs.yml to reference the file.
When the new files are merged into master and pushed to github. Run mkdocs gh-deploy to update the online documentation.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size flask-base-0.0.3.tar.gz (12.7 kB)||File type Source||Python version None||Upload date||Hashes View|