首页
学习
活动
专区
圈层
工具
发布

Django基础篇-模型表关系

一对多表关系 在 Mysql 中一对多是通过外键实现的,在 django 模型中通过 ForeignKeyField 类型实现。...框架篇-Django博客应用-更新首页 一对一表关系 在 Mysql 中一对一是通过外键加唯一键实现的,在 django 模型中通过 OneToOneField 类型实现。...多对多表关系 在 Mysql 中多对多是通过中间表外键加联合唯一键实现的,在 django 模型中通过 ManyToManyField 类型实现。中间表模型会自动创建。...例子: 学院---学生---课程---学生成绩 学院与学生一对一关系,学生与课程多对多关系 课程 学生成绩 关系表中数据的操作 : 同级目录下的 views.py from django.http import...s1.save() # 多对多关系添加内容 # 新增 python 课程 c1 = Course(c_name='python') # 将 python 课程给学生表中的第一位学生

1.1K30

Django - 模型层以及如何通过模型层来建表

模型 Django 提供了一个抽象的模型 ("models") 层, 什么是模型层?...这里模型的思想与Java中的ORM(Object Relationship Mapping) 对象关系映射类似 模型准确且唯一的描述了数据 它包含要储存的数据的字段 一般来说,每一个模型都映射一张数据库表...每个模型都是一个 Python 的类,这些类继承 django.db.models.Model 模型类的每个属性都相当于一个数据库的字段 利用这些,Django 提供了一个自动生成访问数据库的 API...到这就里就根据Django模型在数据库建表成功了 其他的一些命令,可能用不到只是记录下 # 卸载mysqlclient pip install mysqlclient # 异常:mysqlclient.../site-packages/django/db/backends/mysql/base.py 这个文件下的注释掉version < (1, 3, 13) # 这是在sql中执行的命令的,主要是记录建表信息会记录在这个表

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    05.Django基础五之django模型层(一)单表操作

    一、创建表 1.创建模型 ?       ...创建名为book的app,在book下的models.py中创建模型: from django.db import models # Create your models here....这是因为django默认你导入的驱动是MySQLdb,可是MySQLdb 对于py3有很大问题,所以我们需要的驱动是PyMySQL 所以,我们只需要找到项目名文件下的__init__,在里面写入:  ...,django有一张django-migrations表,表中记录了已经执行的脚本,那么表中没有的就是还没执行的脚本,则 执行migrate的时候就只执行表中没有记录的那些脚本。...首先想操作表的增删改查,你需要导入这个表  #在逻辑代码中导入你要操作的表 from app01 import models def add_book(request): ''' 添加表记录

    3.5K10

    Django REST 框架详解 03 | 模型建立与表设计

    文章目录 一、设计表 二、表关系 1.表关系设置 2.断开表关联 三、级联操作 1.CASCADE 2.SET_NULL 3.SET_DEFAULT 4.DO_NOTHING 四、Admin...一、设计表 假设需求,图书管理系统: Book: name, price, img, authors, publish, is_delete, create_time Publish: name,...AuthorDetail 只在需要详情时,才会用到 这两张表一般是一对一的关系 二、表关系 1.表关系设置 Book - Publish:多对一 publish = models.ForeignKey...2.断开表关联 断关联:db_constraint=True 断开关联后,可以用编程逻辑来实现表的数据同步,这样会增加效率 class Book(BaseModel): name = models.CharField...django.contrib import admin from api import models admin.site.register(models.Author) admin.site.register

    1.3K30

    powerdesigner导入sql生成表_oracle导入sql

    在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表。表中每个字段的数据类型、中文注释、是否可为NULL 问题,非常影响我们建表的效率。...本篇文章,以Oracle数据库表为源表,通过PowerDesigner工具将其转化成Mysql数据库建表语句。...需要注意的是,若要相对完美的将Oracle数据库表转换成Mysql数据库表,需要严格按照以下Oracle数据库表结构方式,标点符号都不能多、不能少。...1.1、表名、字段名,需要去除 ` 符号 ; 1.2、若字段定义过程中缺少 ‘NOT NULL’、 ‘DEFAULT NULL’, 请添加 ; 1.3、若Oracle表中含主键,需要添加命令设置主键...由于我们是将Oracle数据库表转化成Mysql数据库表,在这里 “New 数据库管” 一行选择 “MySQL 5.0” 。

    6.9K20

    Django 教程 --- Django 模型

    一个Django模块是内置的功能,Django使用创建表,他们的田地,和各种约束。简而言之,Django Models是与Django一起使用的SQL数据库。...Django模型简化了任务并将表组织到模型中。通常,每个模型都映射到单个数据库表。 本文围绕如何使用Django模型方便地将数据存储在数据库中展开。...使用Django模型 要使用Django模型,需要在其中运行一个项目和一个应用程序。启动应用程序后,可以在app / models.py中创建模型。...Python manage.py makemigrations 创建要在表上方创建模型的SQL查询,并 Python manage.py migrate 在Django管理界面中渲染模型 要在Django...从models.py导入相应的模型并将其注册到管理界面。

    2.9K10

    django模型中有外键关系的表删除相关设置

    0904自我总结 django模型中有外键关系的表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...:作者删除详情删除,详情删除作者保留 2)作者找详情用 外键related_name(detail),详情找作者用 外键字段(author) 3)db_constraint断开表关联,on_delete...(多的一方):出版社删除书外键不动,书删除没有任何影响 2)出版社找书用 外键related_name(books),书找出版社 外键字段(publish) 3)db_constraint断开表关联...,关联的相关内容不会删除 models.CASCAD关联表内容删了,关联的相关内容会删除 db_constraint关系断开后,但是不影响联表查询 四.多对多关系 例如Book、Author两表 authors...2)正向找 外键字段,反向找 外键字段related_name 3)db_constraint断开表关联,on_delete不存在(不设置,本质在第三张表中设置,且一定是级联)

    4.2K20

    django模型

    每个模型对 应数据库中唯一的一张表 如何编写模型 模型:每个模型都用一个类表示,该类继承自django.db.models.Model。...字段选项——unique 如果该值设置为True,这个字段的值在整张表中必须是唯一的 模型meta选项 使用内部的class Meta 定义模型的元数据,例如: from django.db import...meta选项列表 db_table ordering 更多 meta选项——db_table 该模型所用的数据表的名称 class Meta: db_table = 'server’ Django...一个模型的数 -据库表名称,由这个模型的“应用名” 和模型类名称之间加上下划线组成。 使用Meta类中的 db_table 参数来重写数据表的名称。...使用一种直观的方式把数据库表中的数据表示成Python 对象:一个模型类代表数 据库中的一个表,一个模型类的实例代表这个数据库表中的一条特定的记录。

    4.2K20

    Django模型

    Django模型 Django的模型定义在models.py文件中。模型是MVT中的M,也相当于MVC中的M。 在Django中,模型必须继承自Model类。...verbose_name = '图书' # 在admin站点中显示的名称 注意 模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名,一般我们会通过...django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...,默认值是False default 为字段指定默认值 primary_key 若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用 unique 如果为...这是因为Django会默认指定另外一张表的id作为关联字段。如下图所示: 可以看到peopleinfo这张表中的外键名称是book_id

    2.8K20

    手工修复PE导入表

    PE结构分析之手工修复导入表 打开文件,发现打不开 ? 用 winhex 打开,看一下代码节,在2000处与2008处调用了函数 ? 用 Stud_PE 打开 ?...可以看到导入表全是0,就是这里的原因使得无法正常打开,要想打开,我们需要修复导入表 ? 我们可以看一下RVA RAW,2000对应的文件地址为600 ?...在 winhex 中找到导入表的位置,看到有messagebox、user32.dll、exitprocess、kernel32.dll 等信息 前置知识: INT能够表示出函数名是什么,IAT能够表示出这个函数的入口地址在哪里...这样把 IAT 表修复完成 ? 下面需要完成 INT 表的建立。INT 表应该在 IID 之后,所以先确定 IID 的位置。...INT 表示函数调用结束使用4个0作为标志。因为指向的都是同一个地址,所以每个 INT 的值和对应的 IAT 的值是一样的,下面把 INT 表修复完成 ?

    2.2K30
    领券