浅谈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中用format函数格式化字符串的用法
Apr 08 Python
Python中zfill()方法的使用教程
May 20 Python
Python yield 使用方法浅析
May 20 Python
python 数据的清理行为实例详解
Jul 12 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
Python爬虫文件下载图文教程
Dec 23 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
Win10环境中如何实现python2和python3并存
Jul 20 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
Nov 29 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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开发中页面乱码的产生与解决
2008/03/27 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
取选中的radio的值
2010/01/11 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
用django设置session过期时间的方法解析
2019/08/05 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
办公室员工岗位工作职责
2014/03/10 职场文书
经典广告词大全
2014/03/14 职场文书
卫生系统先进事迹
2014/05/13 职场文书
商品陈列协议书
2014/09/29 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
户外亲子活动总结
2015/05/08 职场文书
Python进行区间取值案例讲解
2021/08/02 Python