浅谈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 re正则表达式模块(Regular Expression)
Jul 16 Python
Python中的异常处理简明介绍
Apr 13 Python
Python数据结构之翻转链表
Feb 25 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
浅析python继承与多重继承
Sep 13 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
Django框架安装方法图文详解
Nov 04 Python
Python实现我的世界小游戏源代码
Mar 02 Python
python实现自动化群控的步骤
Apr 11 Python
python通过opencv调用摄像头操作实例分析
Jun 07 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
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
js 火狐下取本地路径实现思路
2013/04/02 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
升职自荐书范文
2013/11/28 职场文书
新学期红领巾广播稿
2014/01/14 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
见习报告的格式
2014/10/31 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
浅谈Python 中的复数问题
2021/05/19 Python