Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Scaffold Database Applications in MySQL or PostgreSQL with Flask

Project description

Flask-Scaffold let's you scaffold a MySQL or PostgreSQL driven Web Application with Flask and Angularjs. It will create views,models and templates for a given Resource along with API endpoints and Unit tests.


Features include

- Python 3 Support
- Unit Testing with python Unit tests
- End 2 End testing with Protractor
- Continous Integration with Travis-CI



Please ensure that development libraries for [PostgreSQL]( are installed.

####Step 1:Clone the project to your application folder.

git clone YourAppFolderName && cd YourAppFolderName

####Step 2: Install the requirements and add your Database configuration details.

pip install -r requirements.txt

#Fill in your database username, password, name, host etc

#### Step 3 : Declare your Resource and it's fields in a YAML file as follows

For a list of supported fields please see

vim scaffold/blog.yaml
- title:string
- body:text
- author:string
- creation_date:date
- published:boolean
- author:string
- body:text
- author_url:url
- created_on:date
- approved:boolean
- name:string
- profile:text
- url:url

#### Step 4 : Run the Scaffolding and database migrations script

python scaffold/blog.yaml
python db init
python db migrate
python db upgrade

#### Step 5 : Run the Server


**You should be able to see the web dashboard at http://localhost:5000


To configure your application with nginx and uwsgi configuration see the [wiki](

####For E2E testing with protractor
Installation instructions for protractor are in the [wiki](

protractor angularjs/<module_name>/conf.js

####For unit testing with python Unit tests

python app/<module_name>/test_<module_name>.py

####For testing multiple modules
bash tests.bash


API calls can be made to the following URL

Note: This example is for a Post module

| HTTP Method | URL | Results |
| :------------ |:---------------:| -----:|
| GET | http://localhost:5000/api/v1/posts.json | Returns a list of all Posts |
| POST | http://localhost:5000/api/v1/posts.json | Creates a New Post |
| GET | http://localhost:5000/api/v1/posts/1.json | Returns details for the a single Post |
| PATCH | http://localhost:5000/api/v1/posts/1.json | Update a Post |
| DELETE | http://localhost:8001/api/v1/posts/1.json | Delete a Post |

The JSON format follows the spec at and a sample is available in the sample.json file

For details on how the API is built read

###Directory Structure
|__ /venv
|__ /scaffold
|-- tests.bash #Tests for all modules
|__ app/
+-- module-1
|-- # Unit Tests for module 1
+-- module-2
|-- # Unit Tests for module 2
|__ templates
|-- index.html
+-- static
|-- js
|-- css
|-- images
+-- module-1
   |-- _form.html
   |-- index.html
   |-- add.html
   |-- update.html
|-- controller.js
   +-- module-2
   |-- _form.html
   |-- index.html
   |-- add.html
   |-- update.html
|-- controller.js

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for Flask-Scaffold, version 0.5.1
Filename, size File type Python version Upload date Hashes
Filename, size Flask-Scaffold-0.5.1.tar.gz (3.5 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page