浅谈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 25 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
Django model select的多种用法详解
Jul 16 Python
python通过实例讲解反射机制
Oct 17 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 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
php调用mysql存储过程
2007/02/14 PHP
php adodb介绍
2009/03/19 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
JavaScript中的 new 命令
2019/05/22 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
Python中装饰器学习总结
2018/02/10 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
详解numpy的argmax的具体使用
2019/05/27 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
Python logging设置和logger解析
2019/08/28 Python
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
华为C++笔试题
2014/08/05 面试题
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
个人工作表现评语
2014/04/30 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
工作失误检讨书
2015/01/26 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS