【Python-Django講義】針對django的ppt講義


 

MCV思想:

M是指數據模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。比如一批統計數據你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。

 

優點:

1.  低耦合性

視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼。

2.  高重用性&可適用性

MVC允許你使用不同樣式的視圖來訪問同一服務器端代碼,例如適用手機或者PC端購物,雖然購物方式不通,但是處理訂購產品的方式是一樣的。因為從模型返回的數據沒有進行格式化,所以可以被不同的界面使用:html/wap

 

MVT:

1.  瀏覽器發送請求到web服務器

2.  Web服務器把這個請求轉交到一個WSGI

名詞解釋:WSGI

Python web開發中,服務端程序可分為2個部分:

服務器程序(用來接收、整理客戶端發送的請求)

應用程序(處理服務器程序傳遞過來的請求)

在開發應用程序的時候,我們會把常用的功能封裝起來,成為各種框架,比如Flask,Django,Tornado(使用某框架進行web開發,相當於開發服務端的應用程序,處理后台邏輯)

但是,服務器程序和應用程序互相配合才能給用戶提供服務,而不同應用程序(不同框架)會有不同的函數、功能。 此時,我們就需要一個標准,讓服務器程序和應用程序都支持這個標准,那么,二者就能很好的配合了

WSGI:wsgi是python web開發的標准,類似於協議。它是服務器程序和應用程序的一個約定,規定了各自使用的接口和功能,以便二和互相配合

 

3.  請求生成一個被稱為environ的python字典,傳遞過去幾個中間件層,最終到達django應用

4.  Urlconf包含在urls.py中,django找到對應url的視圖(View)看來處理http請求。(請求是httprequest,一個python字典對象)

5.  被選中的視圖要完成:

1)  通過模型與數據庫對話

2)  使用模板渲染html

3)  返回一個純文本響應

4)  拋出一個異常

6.  Httpresponse對象離開django后被渲染成一個字符串

7.  在瀏覽器看到一個梅花的渲染后的web界面

 

 

編寫路由:

1.  需要先導入對應app的views文件

2.  對函數url()調用:接受三個實參:

1)第一個是一個正則表達式,r讓python將接下來的字符串視為原始字符串;引號告訴python正則表達式始於何處終於何處,脫字符^讓python查看字符串的開頭,美元符號$讓python查看字符串的末尾。     Python忽略項目的基礎url,如果不匹配返回錯誤界面。

2)第二個參數指定了要調用的視圖函數,匹配時將調用views.index

3)第三個將將這個url模式的名稱指定為index,當需要提供這個主頁的鏈接時可以使用這個名稱,而不編寫url。

 

編寫視圖:

導入HttpResponse模塊

Request參數必須有,封裝了用戶請求的所有內容

不可以直接return “hello world”,不能直接返回字符串,需要用這個類封起來,這是django的規則,不是python的。

通過上面兩個步驟,我們將index這個url指向了views里的index()函數,它接收用戶請求,並返回一個“hello world”字符串。

 

Render()根據視圖提供的數據渲染響應

 

 

定義模型:

所謂ORM:對象關系映射,主要實現模型對象到關系數據庫數據的映射

class Person(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()

    def __unicode__(self):
        return self.name

 

Model是django中一個定義了模型基本功能的類,Person類含有兩個屬性:name和age。

屬性name是一個charfield,由字符或文本組成的數據。

Unicode方法是為了告訴django默認使用那個屬性來展示有關主題的信息。

 

建庫

python manage.py makemigrations

命令makemigrations讓django確定如何讓修改數據庫,

輸出表明django創建了一個0001.py的遷移文件,這個文件將在數據庫中為模型Person創建表。

 

Python manage.py migrate

應用了這種遷移,讓django替我們修改數據庫

 

 

管理網站:

Django提供的管理網站(admin site)讓我們可以輕松地處理模型,所以建立管理網站,添加person。

1.  創建超級用戶

python manage.py createsuperuser

2.  向管理網站注冊模型


from myapp.models import Person
# Register your models here.
admin.site.register(Person)

導入我們要注冊的模型Person

再使用admin.site.register()讓django通過管理網站管理我們的模型

 

 

from models import Person

# Create your views here.
def index(request):
     #return HttpResponse("Hello World!")
     return render(request,"index.html")

def person(request):
     names = Person.objects.order_by(id)
     context = {'names':names}
     return render(request,'person.html',context)

 

<ul>
    {% for name in names %}
        <li>{{ name }}</li>
    {% endfor %}
</ul>

 

<a href="{% url 'index' %}">index地址</a>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM