2012-09-22 79 views
5

¿Flask framework es compatible con el patrón MVC de forma natural? ¿Qué parte de la aplicación debería considerar como modelo, qué como vista y qué como controlador?Frasco-marco: patrón MVC

lo general (en mi experiencia) una aplicación frasco se parece a esto:

main_dir--| 
      | 
     app1--| 
      | | 
      | __init__.py 
      | api.py 
      | models.py 
      | 
     static--| 
      |  | 
      | all the static stuff 
      | 
     app.py # with blueprints registering 
+0

También puede considerar esta sugerencia. https://github.com/salimane/flask-mvc – wenzul

+0

Hola @wenzul modelo es datos disponibles para actualizar la vista directamente, pero en el enlace de ejemplo sobre la vista se actualiza por llamada a 'flask.flash' que en actualización tunrs 'layout.html' plantilla. –

Respuesta

8

frasco no es en realidad un framework MVC. Es un marco minimalista que le da mucha libertad en la forma de estructurar su aplicación, pero el patrón MVC encaja muy bien con lo que ofrece Flask.

Esencialmente usted escribe sus métodos y asignarlos a una ruta específica, por ejemplo .:

@app.route("/") 
def hello(): 
    return "Hello World!" 

No hay vistas o modelo allí, como se puede ver. Sin embargo, también se construye en la parte superior de la biblioteca de plantillas Jinja2, por lo que en una aplicación real, el método (que actúa como controlador) se parece a:

@app.route("/") 
def hello(): 
    return render_template('index.html', username="John Doe") 

Aquí, se utiliza index.html plantilla para representar la página. Esa es tu opinión ahora.

El frasco no prescribe ningún modelo. Puede usar lo que quiera, desde modelos de objetos complejos (normalmente con el uso de algunos ORM como SQLAlchemy) hasta lo más simple que se ajuste a sus necesidades.

Y ahí lo tiene: MVC

Cuestiones relacionadas