ORM通常用于管理數(shù)據(jù)庫中的對象,包括創(chuàng)建、讀取、更新和刪除操作。它提供了一種將Python對象映射到關(guān)系數(shù)據(jù)庫的方法,在使用Python的Django框架進行web開發(fā)的時候,會有很多數(shù)據(jù)庫方面的寫入,查詢等操作,在操作數(shù)據(jù)庫的時候,我們可以通過編輯SQL語句進行查詢數(shù)據(jù)庫,也可以使用Django ORM(Object-Relational Mapping,對象關(guān)系映射)來進行數(shù)據(jù)庫操作,Django ORM 是一個使用 Python 語言編寫的庫,可以使得開發(fā)者通過面向?qū)ο蟮姆绞讲僮麝P(guān)系型數(shù)據(jù)庫。
那么如何直通過外鍵進行附表的查詢,我們直接看代碼,這里是兩個表的model格式
我們把常用的數(shù)據(jù),放在WangxinLssuance表中,把數(shù)據(jù)內(nèi)容比較多的內(nèi)容字段,放在附表中,這樣在查詢的時候可以提高查詢的效率,我們直接查詢主表的話,可以看到,其中的center_uid、receive_uid都是關(guān)聯(lián)的Users表、用于獲取用戶的信息,WangxinLssuanceData表中的lssuance用于關(guān)聯(lián)主表WangxinLssuance中的信息,可以是一對一,也可以是一對多
那么如何查詢附表中的數(shù)據(jù),實現(xiàn)一對多查詢呢
我們直接在查詢后面增加_set,就可以來進行附表的篩選查詢等操作了
核心代碼:
lssuance = WangxinLssuance.objects.get(id=params['id'])先獲取主表信息
然后通過小寫的表名加上_set方式來操作附表
lssuance.wangxinlssuancedata_set.get().content
這樣的篩選用于篩選附表條件,可以用filter方法進行條件篩選