浅谈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性能优化的20条建议
Oct 25 Python
Selenium定位元素操作示例
Aug 10 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
Python常见数字运算操作实例小结
Mar 22 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
Python学习笔记之文件的读写操作实例分析
Aug 07 Python
Python日志logging模块功能与用法详解
Apr 09 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 Python
Elasticsearch 聚合查询和排序
Apr 19 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
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
PHP速成大法
2015/01/30 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
python ETL工具 pyetl
2020/06/07 Python
python语言中有算法吗
2020/06/16 Python
python中random模块详解
2021/03/01 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
视光学专业毕业生推荐信
2013/10/28 职场文书
善意的谎言事例
2014/02/15 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
财务部会计岗位职责
2015/02/03 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL