浅谈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中的getattr函数 hasattr函数
Jun 14 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
Python处理中文标点符号大集合
May 14 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 Python
一文读懂python Scrapy爬虫框架
Feb 24 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防止sql注入之过滤分页参数实例
2014/11/03 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
python利用高阶函数实现剪枝函数
2018/03/20 Python
python3爬取数据至mysql的方法
2018/06/26 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
早读迟到检讨书
2014/01/24 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
房屋所有权证明
2014/10/20 职场文书
股东出资协议书
2016/03/21 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python