浅谈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中的strftime()方法的使用
May 22 Python
python文件与目录操作实例详解
Feb 22 Python
django使用html模板减少代码代码解析
Dec 12 Python
python cs架构实现简单文件传输
Mar 20 Python
Python判断一个三位数是否为水仙花数的示例
Nov 13 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
详解python之heapq模块及排序操作
Apr 04 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
Python pandas如何向excel添加数据
May 22 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 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维护文件系统
2006/10/09 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
优化javascript的执行速度
2010/01/23 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
python django 实现验证码的功能实例代码
2017/05/18 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
python的debug实用工具 pdb详解
2019/07/12 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
python中添加模块导入路径的方法
2021/02/03 Python
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
会议开场欢迎词
2014/01/15 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
绩效管理实施方案
2014/03/19 职场文书
食品安全责任书
2014/04/15 职场文书
《假如》教学反思
2014/04/17 职场文书
师恩难忘教学反思
2014/04/27 职场文书
领导干部保密承诺书
2014/08/30 职场文书
诉讼授权委托书
2014/10/15 职场文书
授权委托书
2015/01/28 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书