淺談Django中的數(shù)據(jù)庫(kù)模型類-models.py(一對(duì)一的關(guān)系)
如下所示:
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models # Create your models here. # 一對(duì)一關(guān)系:數(shù)據(jù)庫(kù)中兩個(gè)表中數(shù)據(jù)的對(duì)應(yīng)關(guān)系 # 一個(gè)賬戶對(duì)應(yīng)著一個(gè)聯(lián)系人,而一個(gè)聯(lián)系人有一個(gè)賬戶 # 一對(duì)一關(guān)系是通過(guò)在兩個(gè)表之間定義相同的主鍵來(lái)完成 class Account(models.Model): username = models.CharField(max_length=20, null=True, blank=True, verbose_name=u'用戶名') password = models.CharField(max_length=40, null=True, blank=True, verbose_name=u'密碼') register_date = models.DateField(auto_now_add=True, null=True, blank=True, verbose_name=u'注冊(cè)時(shí)間') class Meta: db_table = 'Account' # 該函數(shù)是負(fù)責(zé)展示該類對(duì)象的詳細(xì)信息的函數(shù),根據(jù)需要自定義展示的內(nèi)容 def __unicode__(self): return 'Account:%s'%self.username class Contact(models.Model): # 在Contact中,關(guān)聯(lián)Account表,讓兩個(gè)表的數(shù)據(jù)產(chǎn)生聯(lián)系 # 第一個(gè)參數(shù):是被關(guān)聯(lián)的模型名稱 # 第二個(gè)參數(shù):當(dāng)Account中的一條數(shù)據(jù)被刪除的時(shí)候,與之對(duì)應(yīng)的Contact數(shù)據(jù)也會(huì)被刪除 account = models.OneToOneField(Account, on_delete=models.CASCADE, primary_key=True) address = models.CharField(max_length=100, null=True) code = models.CharField(max_length=20, null=True) mobile = models.CharField(max_length=20, null=True) class Meta: db_table = 'Contact' def __unicode__(self): # self.account:通過(guò)聯(lián)系人對(duì)象反向查詢?cè)撔畔⑺鶎俚娜? return 'Contact:%s-%s-%s'%(self.account.username,self.address,self.mobile) # ORM:關(guān)系映射對(duì)象,把傳統(tǒng)的SQL語(yǔ)句封裝成了類和對(duì)象的形式,在操作表中的數(shù)據(jù)記錄時(shí),就像在操作類和對(duì)象 # 一對(duì)一的正向查詢和反向查詢 a1 = Account(username='dawei',password='333') a1.save() c1 = Contact(account=a1,address='xinmi',code='450000',mobile='13212344321') c1.save() print a1.contact# 正向查詢,通過(guò)賬戶查詢?cè)撡~戶對(duì)應(yīng)的詳細(xì)信息 print c1.account# 反向查詢,通過(guò)詳細(xì)信息查詢信息對(duì)應(yīng)的賬戶 # a1.contact.mobile # a1.contact.address # a1.contact.code # c1.account.username # c1.account.password # 刪除賬戶,對(duì)應(yīng)的聯(lián)系人信息也會(huì)被刪除 # a1.delete()
以上這篇淺談Django中的數(shù)據(jù)庫(kù)模型類-models.py(一對(duì)一的關(guān)系)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- django模型中的字段和model名顯示為中文小技巧分享
- Django中模型Model添加JSON類型字段的方法
- django模型層(model)進(jìn)行建表、查詢與刪除的基礎(chǔ)教程
- Django 根據(jù)數(shù)據(jù)模型models創(chuàng)建數(shù)據(jù)表的實(shí)例
- Django 模型類(models.py)的定義詳解
- Django的models模型的具體使用
- 在Django的模型和公用函數(shù)中使用惰性翻譯對(duì)象
- 利用信號(hào)如何監(jiān)控Django模型對(duì)象字段值的變化詳解
- django框架面向?qū)ο驩RM模型繼承用法實(shí)例分析
- Django框架model模型對(duì)象驗(yàn)證實(shí)現(xiàn)方法分析
相關(guān)文章
Python基于jieba分詞實(shí)現(xiàn)snownlp情感分析
情感分析(sentiment analysis)是2018年公布的計(jì)算機(jī)科學(xué)技術(shù)名詞,它可以根據(jù)文本內(nèi)容判斷出所代表的含義是積極的還是負(fù)面的等。本文將通過(guò)jieba分詞實(shí)現(xiàn)snownlp情感分析,感興趣的可以了解一下2023-01-01解決python中使用PYQT時(shí)中文亂碼問(wèn)題
今天小編就為大家分享一篇解決python中使用PYQT時(shí)中文亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python實(shí)現(xiàn)郵件的批量發(fā)送的示例代碼
下面小編就為大家分享一篇Python實(shí)現(xiàn)郵件的批量發(fā)送的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01python實(shí)現(xiàn)超簡(jiǎn)單的視頻對(duì)象提取功能
這篇文章主要給大家介紹了關(guān)于利用python實(shí)現(xiàn)超簡(jiǎn)單的視頻對(duì)象提取功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06python 讀寫、創(chuàng)建 文件的方法(必看)
下面小編就為大家?guī)?lái)一篇python 讀寫、創(chuàng)建 文件的方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09Python基于Logistic回歸建模計(jì)算某銀行在降低貸款拖欠率的數(shù)據(jù)示例
這篇文章主要介紹了Python基于Logistic回歸建模計(jì)算某銀行在降低貸款拖欠率的數(shù)據(jù),結(jié)合實(shí)例形式分析了Python基于邏輯回歸模型的數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-01-01利用Python進(jìn)行微服務(wù)架構(gòu)的監(jiān)控與日志分析
Python作為一種強(qiáng)大的編程語(yǔ)言,提供了豐富的工具和庫(kù),可以幫助我們實(shí)現(xiàn)對(duì)微服務(wù)架構(gòu)的監(jiān)控和日志分析,本文將介紹如何利用Python編寫監(jiān)控腳本和日志分析程序,以便于更好地管理和維護(hù)微服務(wù)系統(tǒng)2024-03-03Python學(xué)習(xí)開發(fā)之圖形用戶界面詳解
當(dāng)前流行的計(jì)算機(jī)桌面應(yīng)用程序大多數(shù)為圖形化用戶界面(Graphic User Interface,GUI),python也提供了多個(gè)圖形開發(fā)界面的庫(kù),這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)開發(fā)之圖形用戶界面的相關(guān)資料,需要的朋友可以參考下2021-08-08