溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python開發(fā)中Django知識點(diǎn)有哪些

發(fā)布時(shí)間:2022-01-12 09:34:07 來源:億速云 閱讀:149 作者:iii 欄目:大數(shù)據(jù)

這篇“python開發(fā)中Django知識點(diǎn)有哪些”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“python開發(fā)中Django知識點(diǎn)有哪些”文章吧。

Django是python的web開發(fā)框架,遵循MVC的設(shè)計(jì)模式,但在Django中通常稱為MTV(model-template-views)。model是數(shù)據(jù)持久層,主要存放實(shí)體映射、實(shí)體關(guān)系以及實(shí)體的一些方法。template是表示層,主要是用來顯示數(shù)據(jù),Django的視圖引擎可以將其渲染成HTML并顯示。views是業(yè)務(wù)邏輯層,在Django中充當(dāng)著鏈接model與template的橋梁,處理模型并向template提交數(shù)據(jù),同時(shí)也接受template的請求和參數(shù),完成相應(yīng)的邏輯后提交模型修改。

1. views和URL

views是業(yè)務(wù)邏輯層,在Django里面views通常是一個(gè)的views.py模塊,放在對應(yīng)的包里。views.py里面是具體的邏輯函數(shù),每一個(gè)函數(shù)對應(yīng)著一個(gè)或多個(gè)模版,為了建立模版與視圖的聯(lián)系,還要有一定的路由機(jī)制,于是Django通常在根目錄有一個(gè)路由程序urls.py。路由由patterns來創(chuàng)建,用正則表達(dá)式來描述,極大地提高了路由機(jī)制的靈活性。

比如:

views.py

python開發(fā)中Django知識點(diǎn)有哪些

在這里request參數(shù)是必須的,但是你可以任意命名,只要符合規(guī)范即可,request包含頁面的請求信息。sender_to_response在django.shortcuts里,所以你還要在前面聲明form django.shortcuts import sender_to_response。request.MATE里含有所有的請求界面信息和用戶信息。shor()是對list從小到大排序。返回值的意思就是向home.html模版提交一個(gè)values變量。urls中patterns中的元組添加了正則的導(dǎo)向規(guī)則:除去原地址匹配'^$'者導(dǎo)向home。當(dāng)然這前提是views.py文件與urls.py在同一個(gè)文件夾里面否則就要引用home的命名空間。如果想在url中傳遞多個(gè)值,可以在你想傳遞的匹配值上面加上括號比如('^([^/]+)/([^/]+) /$', home)就可以匹配/some/some/而some就會被傳到處理函數(shù)home。相應(yīng)的home要添加適當(dāng)?shù)膮?shù)來接受。

2. 模版(Template)

模版在Django中是顯示數(shù)據(jù)的地方,通常為HTML格式,在模版中Django的處理邏輯要寫在{% %}中,而要顯示的變量要寫在{{ }}中。Django的母板頁可以用任何文檔充當(dāng),前提是要用{% block name %}{% endblock %}聲明要填充或替換的塊,而使用時(shí)只需{% extends 母版名字 %}然后調(diào)用相應(yīng)的塊就可以了。

3. 模型

在setting.py 中的database的字典中配置數(shù)據(jù)庫。配置完成后 使用manage.py startapp來創(chuàng)建app在models中編寫python代碼描述實(shí)體映射。比如:

models.py

python開發(fā)中Django知識點(diǎn)有哪些

models包含在django.db中,里面封裝了模型類的通用接口。CharField()是創(chuàng)建varchar型數(shù)據(jù),參數(shù)有max_length,blank,verbose_name等。分別表示最大長度、是否為空、顯示名稱。def__unicode__提供了裝箱后的默認(rèn)顯示,如果沒有設(shè)置此函數(shù),默認(rèn)顯示object類型。class Meta規(guī)定了模型的默認(rèn)排序字段。同時(shí)Django也提供了外鍵設(shè)置接口,此處以book為例

python開發(fā)中Django知識點(diǎn)有哪些

創(chuàng)建完成后要在setting.py配置文件INSTALL_APPS中加入app包的路徑。

Django支持codefirst 可以用manage.py syncdb來同步數(shù)據(jù)庫,更新數(shù)據(jù)庫時(shí)Django是先生成sql語句然后再執(zhí)行,在執(zhí)行前可以運(yùn)行manage.py validate來檢查模型,也可以運(yùn)行manage.py sqlall books??梢灾苯勇暶髂P蛯ο髞韺?shí)現(xiàn)數(shù)據(jù)的插入save()保存 objects.filter()查找,可以對象調(diào)用delete()刪除,同時(shí)也可以模型調(diào)用delete批量刪除。同理update也是對象調(diào)用單個(gè)修改,模型調(diào)用批量修改。

4. 集成的子框架

在django.contrib包中有多種附加功能包,目前只了解了admin和auth兩種感覺功能很強(qiáng)大,美中不足的是admin的界面略丑。 admin是Django官方提供的后臺管理平臺??梢怨芾砟闼砑拥腶pp集成了包括增刪改查在內(nèi)的所有常用功能。調(diào)用代碼也很簡單,只需要在urls.py內(nèi)激活admin的鏈接即可,配置文件在setting.py里,有需求的話可以自行改動。如果想把a(bǔ)pp的管理加入里面需要添加如下代碼(以Book為例):

python開發(fā)中Django知識點(diǎn)有哪些

5. 緩存機(jī)制

個(gè)人認(rèn)為緩存對一個(gè)訪問量過多的網(wǎng)站時(shí)非常重要的,Django里面提供的緩存方式大致分為三種:全站緩存配置方式,針對視圖緩存配置方式,針對數(shù)據(jù)緩存配置方式。只要修改相關(guān)配置文件即可。也可以裝其他插件來協(xié)助緩存,例如memcached。

以上就是關(guān)于“python開發(fā)中Django知識點(diǎn)有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI