浅谈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的类方法和静态方法
Dec 13 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
Django学习笔记之为Model添加Action
Apr 30 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
什么是python类属性
Jun 10 Python
Python内置函数及功能简介汇总
Oct 13 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
python tkinter实现定时关机
Apr 21 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使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
phalcon框架使用指南
2016/02/23 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
会计岗位职责范本
2014/03/07 职场文书
公休请假条
2014/04/11 职场文书
爱国影片观后感
2015/06/18 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书