2012-09-22 19 views
5

Czy struktura kolbowa obsługuje wzór MVC w sposób naturalny? Jaką część aplikacji powinienem traktować jako model, co jako widok, a co jako kontroler?Struktura kolby: wzór MVC

Zazwyczaj (w moim doświadczeniu) Kolba aplikacja wygląda tak:

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

Może również zajrzeć do tej sugestii. https://github.com/salimane/flask-mvc – wenzul

+0

Model Hey @wenzul to dane, które można zaktualizować bezpośrednio, ale jego przykładowy link powyżej widoku jest aktualizowany przez wywołanie 'flask.flash', które w aktualizacji tunerów Szablon 'layout.html'. –

Odpowiedz

8

Kolba nie jest faktycznie framework MVC. Jest to minimalistyczna struktura, która daje dużą swobodę w sposobie budowania aplikacji, ale wzór MVC doskonale pasuje do tego, co zapewnia Flask.

Zasadniczo piszesz swoje metody i mapować je do konkretnej trasy, np .:

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

bez widoku lub model tam, jak widać. Jednakże, jest również zbudowana na szczycie Jinja2 Template Library, więc w realistyczny aplikacji, metoda (która działa jako kontroler) wygląda następująco:

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

Tutaj używać index.html szablon do renderowania strony. To jest teraz twój widok.

Kolba nie wymaga żadnego modelu. Możesz używać wszystkiego, co chcesz - od złożonych modeli obiektów (zazwyczaj przy użyciu niektórych mechanizmów ORM, takich jak SQLAlchemy) do najprostszych rzeczy, które pasują do Twoich potrzeb.

I masz to: MVC