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之表设计分析的更多相关文章

  1. [翻译]Django速查表

    原文在此:https://code.djangoproject.com/wiki/DjangoCheatSheet Django速查表Django教程已经非常好了.这个速查表的作用是创建一个快速开始指 ...

  2. Winform开发框架中工作流模块的表设计分析

    在较早博客随笔里面写过文章<Winform开发框架之简易工作流设计>之后,很久没有对工作流部分进行详细的介绍了,本篇继续这个主题,详细介绍其中的设计.实现及效果给大家,这个工作流在好几年前 ...

  3. 第二十二章 Django会话与表单验证

    第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...

  4. Django的form表单

    html的form表单 django中,前端如果要提交一些数据到views里面去,需要用到 html里面的form表单. 例如: # form2/urls.py from django.contrib ...

  5. 第四百零六节,自定义用户表类来继承Django的用户表类,

    第四百零六节,自定义用户表类来继承Django的用户表类, models.py from django.db import models # Create your models here. from ...

  6. Django 之多表查询 与多表的使用

    1.django的多表查询 主要区分为: 正向查询    逆向查询 1. 多表查询: 是一个复杂的查询,他分为对象查询和__模糊查询两种方式 2. 多表查询: 又分为 一对一查询, 一对多查询, 多对 ...

  7. Django:提交表单时遇到403错误:CSRF verification failed

    Django:提交表单时遇到403错误:CSRF verification failed 问题: 提交表单时遇到403错误:CSRF verification failed 解决方案: 在表单界面ht ...

  8. django migrate生成表结构DateTimeField 类型加了6位精度别的框架无法调用的问题?

    背景介绍 django migrate 生成表结构时,对于DateTimeField 类型的处理是加了6位精度的,只用django处理是没有任何问题的,但是如何别的框架来读取这种字段会读取不到该字段值 ...

  9. django重写form表单中的局部钩子函数

    from django import forms from django.core.exceptions import ValidationError from jax import models c ...

随机推荐

  1. HTML学习 day02

    1.HTML的相关概念 网站建设流程 网页组成  网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior). html(Hypertext Mark ...

  2. PHP变量的初始化以及赋值方式介绍

    什么是变量 变量通俗的来说是一种容器.根据变量类型不同,容器的大小不一样,自然能存放的数据大小也不相同.在变量中存放的数据,我们称之为变量值. PHP 中的变量用一个美元符号后面跟变量名来表示.变量名 ...

  3. 关于.ssh目录下的known_hosts文件的补充

    一.关于.ssh目录下的known_hosts文件的补充 其实一开始是没有注意到的,按照网上的教程一步一步操作,并没有注意到这个文件的生成.直到有一次我试着去查询.ssh目录是否存在时,出现了下面的情 ...

  4. Theano教程

    让我们开始一个交互式会话(例如使用python或ipython)并导入Theano. from theano import * 你需要使用Theano的tensor子包中的几个符号.让我们以一个方便的 ...

  5. django-migrate一败再败

    python3 manage.py makemigrations # 生成数据库迁移文件 python3 manage.py migrate # 迁移数据库 简简单单两条命令就完成了django的数据 ...

  6. P1055 ISBN号码

    题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字.11位识别码和33位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位 ...

  7. 【BZOJ2190】【Luogu P2158】 [SDOI2008]仪仗队

    前言: 更不好的阅读 这篇题解真的写了很久,改了又改才成为这样的,我不会写题解但我正在努力去学,求通过,求赞... 题目: BZOJ Luogu 思路: 像我这样的数论菜鸡就不能一秒切这题,怎么办呢? ...

  8. ImSQL:海量数据,可信存储

    数据造假.数据不可信等问题的存在,给金融监管及风控等众多应用场景带来了严峻的挑战,也正成为阻碍数据大规模互联互通.共享共用的一大障碍.数据的真实可信问题长期影响着社会的各个领域,在更依赖数据的人工智能 ...

  9. react之高阶组件(一)

    当两个或多个组件有相同的地方,可以将相同的部分抽离出来 先创建三个组件A.B.C A.js import React, { Component } from 'react' class A exten ...

  10. 双显卡安装Ubuntu 18.04和NVIDIA驱动

    踩坑笔记: 用软碟通制作UBUNTU18.04 LTS启动盘 长按DEL键进入BIOS,关闭Security Boot,设置USB优先启动 在黑白的grub引导界面(第一行是Try Ubuntu- 第 ...