浅谈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 27 Python
python计算文本文件行数的方法
Jul 06 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
python使用webdriver爬取微信公众号
Aug 31 Python
使用Python实现在Windows下安装Django
Oct 17 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
pytorch 输出中间层特征的实例
Aug 17 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
python的help函数如何使用
Jun 11 Python
python温度转换华氏温度实现代码
Dec 06 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
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
prototype class详解
2006/09/07 Javascript
摘自百度的图片轮换效果代码
2007/11/19 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
JS实现多选框的操作
2020/06/24 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
python3.4实现邮件发送功能
2018/05/28 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
python字典的遍历3种方法详解
2019/08/10 Python
Django静态文件加载失败解决方案
2020/08/26 Python
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
安全生产责任书
2014/03/12 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
作风整顿剖析材料
2014/09/30 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
python中pandas对多列进行分组统计的实现
2021/06/18 Python