欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

記錄Django開發(fā)心得

 更新時間:2024年08月29日 11:51:50   投稿:hebedich  
學(xué)習(xí)使用Django也有一個月了,也該整理整理了,給自己,也給大家分享一下哈(再次鄙視國內(nèi)的IT技術(shù)文檔/問答環(huán)境,抄抄抄,你們TM自己寫點不行?。。。。。?當(dāng)然我剛學(xué)Django/Python,也歡迎指點錯誤的地方,

概念層面

概括

Django是屬于MVC的Web框架。

Model:負(fù)責(zé)與數(shù)據(jù)庫打交道

View:負(fù)責(zé)獲取或者增強從Models得到的數(shù)據(jù)

Controller:這是Django本身

Project與App的區(qū)別

Project:提供各種配置文件 App:功能的結(jié)合,包括Model和view,需要在根目錄下添加”__init__.py”,使得Python可以識別

ManyToMany與ForeignKey的區(qū)別

ForeignKey例子:

員工打卡上班的記錄——員工可有多次打卡記錄,但是一次刷卡記錄只能有單一員工屬性(一對多)

ManyToMany例子:

一篇文章可以有多個標(biāo)簽,而一個標(biāo)簽對應(yīng)的文章也可以是多篇的(多對多)

ManyToMany還有一種特殊的結(jié)構(gòu),非常類似Twitter的Follow。

假設(shè) A Follow了 B,但是B并沒有Follow A,他們之間的Follow是不對等的,要實現(xiàn)這種關(guān)系,要在Meta里面設(shè)置symetric=False

SexyCode

這是我理解后覺得“性感到死”的一些代碼:

lambda x, y: x+y 

Lambda其實和JS中的匿名函數(shù)有這異曲同工的作用,嫌起名麻煩,就丟進(jìn)去,Lambda默認(rèn)返回里面的值,所以不需要return

map(lambda x: x+1, [1,2,3]) #得到[2,3,4] 

也就是每個都執(zhí)行一次前面的函數(shù)

reduce(lambda x, y: x+y, [1,2,3]) #得到6 

也就是每個都和之前的元素執(zhí)行一次操作

[i for i in xrange(0,100) if i%2==0] 

得到100以下所有偶數(shù)。學(xué)術(shù)上叫“列表推導(dǎo)”,但在現(xiàn)實案例中是遍歷的好工具。

Q(**{key:value}) 

我在培訓(xùn)的時候,學(xué)到的是Q、F這兩個Django函數(shù)是不接受字符串的,即 Q("abc=1") 是不能接受的。但是這段代碼性感之處就是徹底擺脫了這條束縛(其實就是重寫了keyword對),可以隨意構(gòu)造你喜歡的查詢段,這在構(gòu)造搜索功能時十分有用。比如:

q_dict = reduce(lambda x,y: x&y, [ Q(**{"%s__slug_name" % taxonomy:request.GET.get(taxonomy)}
    ) for taxonomy in request.GET.keys() if taxonomy in SEARCHABLE_LIST ])
@property 

這個@符號的用法叫“修飾器”,個人感覺這是python比其他語言優(yōu)美的地方,如何構(gòu)造修飾器的話,還是看文檔的好。這里只是說在class中使用 @property 的話,這個函數(shù)就自動地變成class的屬性了,這和js的set、get很像
super超類的使用,super一出,繼承的子class一概不執(zhí)行自身的函數(shù),而是執(zhí)行super指定的函數(shù)
annotate和aggregate。這兩個家伙在構(gòu)造新的query_set時非常有用。比如要統(tǒng)計出一臺電腦的總價時,在ComputerManager里面使用

def get_query_set(self):
query_set = super(ComputerManager, self).get_query_set()
query_set = query_set.annotate(price=Sum('devices__price'))

這樣,每臺電腦就有了總價格。這在構(gòu)造商品集的時候很方便,但是admin.py的編寫就略顯羅嗦了。

Error集

取出數(shù)據(jù)時:XXManager object is not iterable

這是因為Django不會在執(zhí)行代碼過程中得出SQL語句并查詢(所以想獲得Sql語句也是不可能的)。所以需要使用.get(),.all(),.filter來獲得真正的數(shù)據(jù)實體

相關(guān)文章

  • Python學(xué)習(xí)之str重要函數(shù)

    Python學(xué)習(xí)之str重要函數(shù)

    這篇文章主要介紹了Python str重要函數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Django中使用極驗Geetest滑動驗證碼過程解析

    Django中使用極驗Geetest滑動驗證碼過程解析

    這篇文章主要介紹了Django中使用極驗Geetest滑動驗證碼過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 利用Pandas讀取某列某行數(shù)據(jù)之loc和iloc用法總結(jié)

    利用Pandas讀取某列某行數(shù)據(jù)之loc和iloc用法總結(jié)

    loc是location的意思,和iloc中i的意思是指integer,所以它只接受整數(shù)作為參數(shù),下面這篇文章主要給大家介紹了關(guān)于利用Pandas讀取某列某行數(shù)據(jù)之loc和iloc用法的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 用Flask實現(xiàn)token登錄校驗的解決方案

    用Flask實現(xiàn)token登錄校驗的解決方案

    網(wǎng)站、小程序、APP 是否已經(jīng)登錄所代表的狀態(tài),代表一個概念是登錄態(tài), 我們常用的登錄態(tài)驗證方式有cookie,session,token,token提供了另外一種不需要緩存賬戶和密碼的登錄狀態(tài)驗證方式,本文給大家介紹了用Flask實現(xiàn)token登錄校驗的解決方案,需要的朋友可以參考下
    2024-03-03
  • 使用Python實現(xiàn)屏幕截圖的兩種方法

    使用Python實現(xiàn)屏幕截圖的兩種方法

    Python作為一種高效的編程語言,可以通過一些庫來實現(xiàn)對屏幕的截圖操作,本文主要介紹了使用Python實現(xiàn)屏幕截圖的兩種方法,具有一定的 參考價值,感興趣的可以了解一下
    2023-12-12
  • Python使用MONGODB入門實例

    Python使用MONGODB入門實例

    這篇文章主要介紹了Python使用MONGODB的方法,實例分析了Python使用MONGODB的啟動、安裝及使用的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • pyscript的簡單應(yīng)用實現(xiàn)

    pyscript的簡單應(yīng)用實現(xiàn)

    本文主要介紹了pyscript的簡單應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • pycharm沒有找到manage?repositories按鈕的解決辦法

    pycharm沒有找到manage?repositories按鈕的解決辦法

    這篇文章主要給大家介紹了關(guān)于pycharm沒有找到manage?repositories按鈕的解決辦法,pycharm是用來寫python的可視化代碼軟件,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • python selenium 獲取接口數(shù)據(jù)的實現(xiàn)

    python selenium 獲取接口數(shù)據(jù)的實現(xiàn)

    這篇文章主要介紹了python selenium 獲取接口數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 進(jìn)一步探究Python的裝飾器的運用

    進(jìn)一步探究Python的裝飾器的運用

    這篇文章主要介紹了更為深入的Python的裝飾器的運用,Python的裝飾器是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要知識點,需要的朋友可以參考下
    2015-05-05

最新評論