1.Models:一個抽象層,用來構建和操作你的web應用中的數據,模型是你的數據的唯一的、權威的信息源。它包含你所儲存數據的必要字段和行為。通常,每個模型對應數據庫中唯一的一張表。
from django.db import models
# Create your models here.
class BlogsPost(models.Model):
title = models.CharField(max_length = 150)
body = models.TextField()
timestamp = models.DateTimeField()
創建好模型就好了,剩下的由Django完成。Django會根據模型在數據庫中創建一個表
2.模板(templates):模板層提供了設計友好的語法來展示信息給用戶。使用模板方法可以動態地生成HTML。模板包含所需HTML 輸出的靜態部分,以及一些特殊的語法,描述如何將動態內容插入。
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
3.視圖(views):用於封裝負責處理用戶請求及返回響應的邏輯。視圖可以看作是前端與數據庫的中間人,他會將前端想要的數據從數據庫中讀出來給前端。他也會將用戶要想保存的數據寫到數據庫。
#coding=utf-8
from django.shortcuts import render
from blog.models import BlogsPost
from django.shortcuts import render_to_response
# Create your views here.
def index(request):
blog_list = BlogsPost.objects.all()
return render_to_response('index.html',{'blog_list':blog_list})
查詢到BlogsPost數據庫里的所有數據,賦值給blog_list變量。
return render_to_response('index.html',{'blog_list':blog_list})
通過render_to_response() 返回給瀏覽器一個index.html頁面,並且將blog_list變量的值也返回給index.html。
4.MTV與MVC
MVC:Model 代表數據存取層,View 代表的是系統中選擇顯示什么和怎么顯示的部分,Controller 指的是系統中根據用戶輸入並視需要訪問模型,以決定使用哪個視圖的那部分。
以下是 Django 中 M、V 和 C 各自的含義:
M ,數據存取部分,由django數據庫層處理,本章要講述的內容。
V ,選擇顯示哪些數據要顯示以及怎樣顯示的部分,由視圖和模板處理。
C ,根據用戶輸入委派視圖的部分,由 Django 框架根據 URLconf 設置,對給定 URL 調用適當的 Python 函數。
C 是由框架自行處理,而 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views), Django 也被稱為 MTV 框架 。在 MTV 開發模式中:
M 代表模型(Model),即數據存取層。 該層處理與數據相關的所有事務: 如何存取、如何驗證有效
T 代表模板(Template),即表現層。 該層處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。
V 代表視圖(View),即業務邏輯層。 該層包含存取模型及調取恰當模板的相關邏輯。 你可以把它看作模型與模板之間的橋梁。
如果你熟悉其它的 MVC Web開發框架,比方說 Ruby on Rails,你可能會認為 Django 視圖是控制器,而Django 模板是視圖。 很不幸,這是對 MVC 不同詮釋所引起的錯誤認識。 在 Django 對 MVC 的詮釋中,視圖是用來描述要展現給用戶的數據;而不是數據如何展現 。
參考:
1.Django文檔