Flask-Now is a Flask Application Generator/Build-Tool runs via CLI
What is Flask-Now
Since Flask is commonly used in kickstarting a project, developers shouldn't waste their time with creating folders like static/css, static/js, configuration, controllers, models etc. Aim of Flask-Now is auto generating necessity folders and files according to your architectural pattern and semi-automatically installing desired flask extension. Since Flask is very flexible microframework, it may fit many architectural pattern. Currently following patterns can be auto generated using Flask-Now:
Flask-Now supports two different patterns:
- It is a very simple flask application structure for very small applications
/your_project_folder venv run.py config.py models.py requirements.txt
bp (Known as blueprints)
- As suggested in official tutorial, Flask Now has a similar folder structure which is called as bp:
/your_project_folder venv run.py requirements.txt /project __init__.py /blueprints /index -> an example blueprint __init__.py controller.py forms.py models.py config.py /static /css style.css /js script.js /templates index.html
How to use
- Python 3.x
Let me explain this project with an example. Assume that we want to create an Flask Application called
GNU/Linux - OSX
- Install flask-now with pip to your global environment, this will add an executable file to your /bin with the name flask-now which is the runnable application:
sudo pip3 install flask-now
- Go to the folder you wish to create the project:
- Create the app! Let's assume that we want to create an app named 'flaskr' with simple pattern with flask-wtf and flask-sqlalchemy installed
flask-now flaskr simple -e sqlalchemy wtf
- That's it. Now activate the virtualenv and run the project:
cd flaskr && source/venv/bin/activate && python run.py
As you can understand from the example we drop Flask keyword while installing flask extensions to our project.
Some examples which may confuse you:
- Flask-Rest-Jsonapi -> rest-jsonapi
- Frozen-Flask -> frozen
To uninstall :
sudo pip3 uninstall flask-now
- Adding more architectural patterns.
- Adding more options for configuration file.
- Adding smart code generation according to desired extensions.(for example if you install Flask-SqlAlchemy, sample model, imports and db configurations will be ready)
- Generate architecture for rest api's via using Flask-RESTPlus planned version: 0.3.0. New architectural pattern
- Adding flask-admin via using Flask-Admin planned version: 0.4.0. New architectural pattern
- Decide if application will be renamed as flask-up, maybe both will be used while calling from console. Naming proposal which is started under this reddit post. Not planned yet.
- 0.2.1 project recreated.
Please feel free to contribute to this project, open issues, fork it, send pull requests.
You can also send email to my mail firstname.lastname@example.org