浅谈Django中的数据库模型类-models.py(一对一的关系)


Posted in Python onMay 30, 2018

如下所示:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
# Create your models here.
# 一对一关系:数据库中两个表中数据的对应关系
# 一个账户对应着一个联系人,而一个联系人有一个账户
# 一对一关系是通过在两个表之间定义相同的主键来完成
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'注册时间')
 class Meta:
  db_table = 'Account'
 # 该函数是负责展示该类对象的详细信息的函数,根据需要自定义展示的内容
 def __unicode__(self):
  return 'Account:%s'%self.username
class Contact(models.Model):
 # 在Contact中,关联Account表,让两个表的数据产生联系
 # 第一个参数:是被关联的模型名称
 # 第二个参数:当Account中的一条数据被删除的时候,与之对应的Contact数据也会被删除
 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:通过联系人对象反向查询该信息所属的人
  return 'Contact:%s-%s-%s'%(self.account.username,self.address,self.mobile)
# ORM:关系映射对象,把传统的SQL语句封装成了类和对象的形式,在操作表中的数据记录时,就像在操作类和对象
# 一对一的正向查询和反向查询
a1 = Account(username='dawei',password='333')
a1.save()
c1 = Contact(account=a1,address='xinmi',code='450000',mobile='13212344321')
c1.save()
print a1.contact# 正向查询,通过账户查询该账户对应的详细信息
print c1.account# 反向查询,通过详细信息查询信息对应的账户
# a1.contact.mobile
# a1.contact.address
# a1.contact.code
# c1.account.username
# c1.account.password
# 删除账户,对应的联系人信息也会被删除
# a1.delete()

以上这篇浅谈Django中的数据库模型类-models.py(一对一的关系)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
爬山算法简介和Python实现实例
Apr 26 Python
Linux下编译安装MySQL-Python教程
Feb 02 Python
深入理解python try异常处理机制
Jun 01 Python
Python的IDEL增加清屏功能实例
Jun 19 Python
python中模块的__all__属性详解
Oct 26 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
使用tensorflow实现AlexNet
Nov 20 Python
python实现excel读写数据
Mar 02 Python
浅析Python四种数据类型
Sep 26 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Python实现的读取电脑硬件信息功能示例
May 30 #Python
Python应用库大全总结
May 30 #Python
Django中反向生成models.py的实例讲解
May 30 #Python
Python RabbitMQ消息队列实现rpc
May 30 #Python
python日期时间转为字符串或者格式化输出的实例
May 29 #Python
python 集合 并集、交集 Series list set 转换的实例
May 29 #Python
使用Django启动命令行及执行脚本的方法
May 29 #Python
You might like
在PHP中利用XML技术构造远程服务(下)
2006/10/09 PHP
基于php下载文件的详解
2013/06/02 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
简析Python的闭包和装饰器
2016/02/26 Python
Python常见异常分类与处理方法
2017/06/04 Python
python实现图片文件批量重命名
2020/03/23 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python os.fork() 循环输出方法
2019/08/08 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
北京天润融通.net面试题笔试题
2012/02/20 面试题
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
环保专项行动方案
2014/05/12 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书