Pertanyaan Django vs. Model View Controller [tertutup]


Dapatkah seseorang menjelaskan kepada saya di mana perbedaan antara Django dan pola Model View Controller?

Secara fungsional, apa yang dapat kita harapkan dari perbedaan-perbedaan itu - yaitu, apa yang bekerja secara berbeda dibandingkan dengan Django, misalnya, Ruby on Rails?


76
2017-07-08 08:05


asal


Jawaban:


Menurut Buku Django, Django mengikuti pola MVC cukup dekat untuk disebut kerangka kerja MVC.

Django telah disebut sebagai kerangka MTV karena pengendali ditangani oleh kerangka itu sendiri dan sebagian besar kegembiraan terjadi dalam model, template dan tampilan.

Anda dapat membaca lebih lanjut tentang MTV / MVC di sini:

Pola Pengembangan MTV (atau MVC)

Jika Anda akrab dengan MVC lainnya   Kerangka pengembangan web, seperti   Ruby on Rails, Anda dapat mempertimbangkan Django   pandangan untuk menjadi pengendali dan   Django template menjadi dilihat.

Ini adalah kebingungan yang tidak menguntungkan   dibawa oleh berbeda   interpretasi MVC.

Dalam interpretasi Django tentang MVC, the melihat   menggambarkan data yang disajikan   kepada pengguna; itu tidak selalu adil   bagaimana data terlihat, tetapi data mana   disajikan.

Sebaliknya, Ruby on Rails   dan kerangka kerja serupa menyarankan itu   pekerjaan pengontrol termasuk memutuskan   data mana yang disajikan kepada pengguna,   sedangkan pandangannya sangat ketat bagaimana   data terlihat, bukan data mana   disajikan.


103
2017-07-08 08:45



FAQ Django sendiri adalah tempat yang layak untuk memulai:

Ingatlah bahwa "Model View Controller" hanyalah sebuah pola, yaitu upaya untuk mendeskripsikan arsitektur umum. Jadi pertanyaan yang lebih baik mungkin "Seberapa baik Django cocok dengan pola Model View Controller?"


18
2017-07-08 08:11



Ketika Anda membuat kode, tidak memikirkan nama potongan kerangka kerja, tidak ada perbedaan susbtantive antara, misalnya RoR. Tetapi itu tergantung pada penggunaan yang Anda berikan models, karena pada Django mereka dengan mudah mengandung beberapa logika yang pada kerangka kerja lain akan tetap pada tingkat pengontrol.

Itu view di Django cenderung menjadi serangkaian kueri untuk mengambil data, dan meneruskannya ke template.


10
2017-11-15 15:31



Di mvt, permintaan ke URL dikirim ke View. Panggilan View ini ke dalam Model, melakukan manipulasi dan menyiapkan data untuk output. Data diteruskan ke Templat yang diurai sebagai tanggapan. idealnya dalam kerangka kerja web, pengontrol tersembunyi dari tampilan.

Di sinilah perbedaannya dari MVC: di MVC, pengguna berinteraksi dengan gui, controller menangani permintaan dan memberitahukan model dan tampilan meminta model untuk menampilkan hasilnya kepada pengguna.


6
2017-07-08 08:13