2012-09-22 3 views
5

La struttura del pallone supporta il modello MVC in modo naturale? Quale parte dell'applicazione dovrei considerare come un modello, cosa è una vista e cosa come un controller?Struttura del matraccio: modello MVC

genere (nella mia esperienza) un'applicazione Flask si presenta così:

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

Può anche esaminare questo suggerimento. https://github.com/salimane/flask-mvc – wenzul

+0

Ehi, il modello @wenzul è provabile per l'aggiornamento della vista direttamente, ma il link di esempio sopra la vista viene aggiornato con una chiamata a 'flask.flash' che in tunrs si aggiorna template 'layout.html'. –

risposta

8

Flask in realtà non è un framework MVC. È una struttura minimalista che ti dà molta libertà nel modo in cui strutturi la tua applicazione, ma il pattern MVC è molto adatto a quello che fornisce Flask.

In sostanza si scrive i vostri metodi e li mappa di percorso specifico, ad es .:

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

Senza vista o modello lì, come si può vedere. Tuttavia, si è anche costruito in cima al grimorio modello Jinja2, quindi in un'applicazione realistica, il metodo (che funge da controllore) si presenta come:

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

Qui, si utilizza index.html modello per il rendering della pagina. Questa è la tua opinione ora.

Flask non prescrive alcun modello. Puoi usare quello che vuoi - dai modelli di oggetti complessi (in genere con l'utilizzo di ORM come SQLAlchemy) alla cosa più semplice che si adatta alle tue esigenze.

E il gioco è fatto: MVC