You can use the mvc pattern in your flask application using this extension.
Run the follow command to install mvc_flask
:
$ pip install mvc_flask
To configure the mvc_flask
you need import and register in your application, e.g:
from flask import Flask
from mvc_flask import FlaskMVC
app = Flask(__name__)
FlaskMVC(app)
Or use application factories
, e.g:
mvc = FlaskMVC()
def create_app():
...
mvc.init_app(app)
By default the mvc_flask
assumes that your application directory will be app
and if it doesn't exist, create it!
You structure should be look like this:
app
├── __ini__.py
├── controllers
│ └── home_controller.py
├── routes.py
└── views
├── index.html
You can create routes in app/routes.py
and after create file, you can start register routes, e.g:
from mvc_flask import Router
Router.get("/", "home#index")
The same must be make done to POST
, PUT
and DELETE
methods. E.g: Router.post("/messages", "messages#create")
The first param represent the relative path and second represent the controller#action
. Remember that we are working with MVC pattern
, so we have controller
and action
.
The controller
can be created in app/controllers
and action is method of controller
.
Now that configure routes, the home_controller.py
file must contain the HomeController
class, registering the action
, e.g:
from flask import render_template
class HomeController:
def index(self):
return render_template("index.html")
If you have question, please, check de app directory to more details.
Flask use the templates
directory by default to store HTMLs
files. However, using the mvc-flask
the default becomes views
. You can use the app/views
directory to stores templates.
You can run the tests, executing the follow command:
$ make test