Django day03之表设计分析
models.py文件中创建表字段分析实例:
图书管理系统--->
书、作者、出版社作为基表
from django.db import models
# Create your models here.
#先不要考虑外键关系,先创基表
class Book(models.Model):
'''
书名、价格、出版社、作者
'''
title=models.CharField(max_length=32)
#小数长度总共8位,小数占两位
price=models.DecimalField(max_digits=8,decimal_places=2)
#出版社和书是一对多关系,并且书是多的一方,所以外键字段建在书表中,
publish=models.ForeignKey(to='Publish')
#to用来指代和哪张表有关系,默认关联的就是表的主键字段
'''
一对多外键字段在创建的时候,同步到数据中,表字段会自动加_id后缀
如果你自己加了_id,我ORM头铁,会在后面再加一个_id,
所以你在写一对多外键字段的时候,不要自作聪明的加_id。
'''
#一本书可以有多个作者,一个作者可以有多本书,所以书和作者是多对多的关系,
# 外间字段建在任意一方都可以,但是建议你建立在查询频率较高的一方。
author=models.ManyToManyField(to='Author')
#django orm 会自动帮你创建书籍和作者的第三张关系表,
#author这个字段是一个虚拟字段,不会再表中展示出来,仅仅只是起到一个
#告诉 orm 建第三张表的关系的作用。
class Publish(models.Model):
'''
出版社名字、出版社邮箱
'''
title=models.CharField(max_length=32)
email=models.EmailField()
class Author(models.Model):
'''
作者名字、作者年龄
'''
name=models.CharField(max_length=64)
age=models.IntegerField()
#作者表和作者详情表是一对一的表关系,外键字段建在任意一方都可以,
#但是建议你建在查询频率较高的那一方。
author_detail=models.OneToOneField(to='Author_detail')
'''
一对一的外键字段,创建的时候,同步到数据中,表字段会自动加_id后缀,
如果你自己加了_id 我orm头铁,在后面再加一个_id,
所以你在写一对一外键字段的时候,不要自作聪明的加_id 。
'''
class Author_detail(models.Model):
'''
作者手机号、作者地址
'''
phone=models.BigIntegerField()
addr=models.CharField(max_length=32)
Django day03之表设计分析的更多相关文章
- [翻译]Django速查表
原文在此:https://code.djangoproject.com/wiki/DjangoCheatSheet Django速查表Django教程已经非常好了.这个速查表的作用是创建一个快速开始指 ...
- Winform开发框架中工作流模块的表设计分析
在较早博客随笔里面写过文章<Winform开发框架之简易工作流设计>之后,很久没有对工作流部分进行详细的介绍了,本篇继续这个主题,详细介绍其中的设计.实现及效果给大家,这个工作流在好几年前 ...
- 第二十二章 Django会话与表单验证
第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...
- Django的form表单
html的form表单 django中,前端如果要提交一些数据到views里面去,需要用到 html里面的form表单. 例如: # form2/urls.py from django.contrib ...
- 第四百零六节,自定义用户表类来继承Django的用户表类,
第四百零六节,自定义用户表类来继承Django的用户表类, models.py from django.db import models # Create your models here. from ...
- Django 之多表查询 与多表的使用
1.django的多表查询 主要区分为: 正向查询 逆向查询 1. 多表查询: 是一个复杂的查询,他分为对象查询和__模糊查询两种方式 2. 多表查询: 又分为 一对一查询, 一对多查询, 多对 ...
- Django:提交表单时遇到403错误:CSRF verification failed
Django:提交表单时遇到403错误:CSRF verification failed 问题: 提交表单时遇到403错误:CSRF verification failed 解决方案: 在表单界面ht ...
- django migrate生成表结构DateTimeField 类型加了6位精度别的框架无法调用的问题?
背景介绍 django migrate 生成表结构时,对于DateTimeField 类型的处理是加了6位精度的,只用django处理是没有任何问题的,但是如何别的框架来读取这种字段会读取不到该字段值 ...
- django重写form表单中的局部钩子函数
from django import forms from django.core.exceptions import ValidationError from jax import models c ...
随机推荐
- [Part 4] 在Windows 10上源码编译PCL 1.8.1支持VTK和QT,可视化三维点云
本文首发于个人博客https://kezunlin.me/post/2d809f92/,欢迎阅读! Part-4: Compile pcl with vtk qt5 support from sour ...
- oracle插入,更新,删除数据
插入,更新,删除数据 oracle提供了功能丰富的数据库管理语句 包括有效的向数据库中插入数据的insert语句 更新数据的update语句 以及当数据不再使用时删除数据的delete语句 更改数据之 ...
- SSH 免密登录服务器
本文详解如何以多种方法实现ssh免密码登陆远程服务器 阅读须知: 1.以下方法操作时请不要随意切换目录. 2.xxx为私钥,xxx.pub是公钥(默认一般文件名为id_rsa和id_rsa.pub,可 ...
- 2019-9-11:渗透测试,基础学习,VMware安装centos 7
VMware Workstation 15 Pro 安装Centos 7,详细图文步骤 1,点击VMware菜单栏的“文件”-->“新建虚拟机”,选择“典型”使用向导创建虚拟机,点击“下一步” ...
- Kylin的安装及遇到的问题
************************************************************************************************ 首先, ...
- DVWA学习之SQL注入
DVWA学习之SQL注入 环境工具 dvwa 1.9 phpstudy firefox burpsuite 实验步骤 一.设置安全级别为LOW 1. 登录DVWA,并将安全级别设置为LOW 2. 进入 ...
- vsftp安装和配置
2013-10-10 10:49:48| 分类: Linux|举报|字号 订阅 源码下载地址:ftp://vsftpd.beasts.org/users/cevans/untar/ 1. ...
- 使用 Flask 和 Vue.js 来构建全栈单页应用
在这个教程中,我将向你展示如何将 Vue 的单页面应用和 Flask 后端连接起来. 简单的来说,如果想在 Flask 中使用 Vue 框架是没有什么问题的. 但在实际中存在一个明显的问题就是 Fla ...
- 基于Win服务的标签打印(模板套打)
最近做了几个项目,都有在产品贴标的需求 基本就是有个证卡类打印机,然后把产品的信息打印在标签上. 然后通过机器人把标签贴到产品上面 标签信息包括文本,二维码,条形码之类的,要根据对应的数据生成二维码, ...
- 【跟唐老师学习云网络】-第8篇 iptables - filter过滤功能
[摘要] 前面的各种协议已经可以把基本可用的物理网络世界给形成了,在正常情况下,它可以玩的很溜.比如组个局域网办公,或者打个联机魔兽争霸,都没有什么问题. 一.背景介绍 前面的各种协议已经可以把基本可 ...