浅谈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中处理字符串之isdigit()方法的使用
May 18 Python
浅谈python字符串方法的简单使用
Jul 18 Python
python编程培训 python培训靠谱吗
Jan 17 Python
Numpy之文件存取的示例代码
Aug 03 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
Dec 15 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
python3用PIL把图片转换为RGB图片的实例
Jul 04 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
django rest framework 过滤时间操作
Jul 12 Python
python破解同事的压缩包密码
Oct 14 Python
Python中免验证跳转到内容页的实例代码
Oct 23 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将向Java靠拢
2006/10/09 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
获取body标签的两种方法
2011/10/13 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
Django如何配置mysql数据库
2018/05/04 Python
python里运用私有属性和方法总结
2019/07/08 Python
python编写微信公众号首图思路详解
2019/12/13 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
文明青少年标兵事迹材料
2014/01/28 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
大学生军训感言
2015/08/01 职场文书
初中语文教师研修日志
2015/11/13 职场文书
2019年工作总结范文
2019/05/21 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript