浅谈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中用pycurl监控http响应时间脚本分享
Feb 02 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
python生成式的send()方法(详解)
May 08 Python
Tensorflow简单验证码识别应用
May 25 Python
在CMD命令行中运行python脚本的方法
May 12 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
python binascii 进制转换实例
Jun 12 Python
python操作excel让工作自动化
Aug 09 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
python随机数分布random均匀分布实例
Nov 27 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
用PHP实现图象锐化代码
2007/06/14 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
深入理解vue中的$set
2017/06/01 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
同乡会致辞
2015/07/30 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python