浅谈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中的装饰器用法详解
Jan 14 Python
python如何让类支持比较运算
Mar 20 Python
python如何将图片转换为字符图片
Aug 19 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
利用nohup来开启python文件的方法
Jan 14 Python
python3.6数独问题的解决
Jan 21 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
解决django的template中如果无法引用MEDIA_URL问题
Apr 07 Python
Python reques接口测试框架实现代码
Jul 28 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
使用Python pip怎么升级pip
Aug 11 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
限制复选框的最大可选数
2006/07/01 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python 整数越界问题详解
2019/06/27 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
Python 实现进度条的六种方式
2021/01/06 Python
Python如何telnet到网络设备
2021/02/18 Python
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
毕业生自我鉴定
2013/12/04 职场文书
运动会入场词200字
2014/02/15 职场文书
化验室安全管理制度
2015/08/06 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js