1.背景知识 需要开发一个系统,处理大量EXCEL表格信息,各种类别.表格标题多变,因此使用不需要预先设计数据表结构的MongoDB,即NoSQL.一是字段不固定,二是同名字段可以存储不同的字段类型. 同时,后端确定使用Django,原因是数据处理这一块,python无敌于天下. Django采用MVT模式开发.MODEL是最关键的部分.是ORM的核心.但是ORM主要用于关系型数据库.那么如何解决? 2.大量调研的网上资料 (1)mongoengine    mongoengine(跟pymon…
  Django中的ORM框架使用小技巧 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. Django对各个数据提供了很好的支持,包括PostgreSQL,MySQL,SQLite和Oracle,而且为这些数据库提供了统一的调用API,这些API统称为ORM框架.通过使用Django内置的ORM框架可以实现数据库和读写操作. 一.ORM介绍 1>.什么是ORM ORM框架是一种程序技术,用户实现面向对象编程语言中不同类型系统的数据之间的转换.从效果上说,其实是创建了一个可在编…
模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除,ORM框架会转换成对应的delete语句. 模型类的属性 属性objects:管理器,是Manager类型的对象,用于与数据库进行交互. 当没有为模型类定义管理器时,Django会为模型类生成一个名为objects的管理器,自定义管理器后,Django不再生成默认管理器objects. 管理器是D…
一.什么是Django ContentTypes? 1.Django 包含一个ContentTypes 应用,它可以追踪安装在你的Django 项目里的所有应用,并提供一个高层次的.通用的接口用于与你的模型进行交互. 2.Django ContentTypes是由Django框架提供的一个核心功能,它对当前项目中所有基于Django驱动的model提供了更高层次的抽象接口. 3.Contenttypes 的核心应用是ContentType模型,存在于 django.contrib.content…
转自:https://my.oschina.net/liuyuantao/blog/751337 简介 使用内部的class Meta 定义模型的元数据,例如: from django.db import models class Ox(models.Model): horn_length = models.IntegerField() class Meta: ordering = ["horn_length"] verbose_name_plural = "oxen&quo…
django框架的models模块ORM框架,能够让我们通过编写类的方式,帮助我们自动生成数据库表. 生成的数据库表名为 应用模块名称_类名 数据库表中字段名 如果我们没有在参数中指定,就是我们写的类属性名. 通过编写类属性的方式,我们可以创建数据库表. 1 首先编写类: 稍后详细 2 然后生成迁移文件: python manage.py makemigrations 3 执行迁移: python manage.py migrate 三步骤,django会帮助我们生成相应的sql语句创建数据库表…
Django商城项目笔记No.3用户部分-用户模型类 Django提供了认证系统,文档资料https://yiyibooks.cn/xx/Django_1.11.6/topics/auth/index.html 但是我们的项目中的注册,需要保存用户的手机号,所以要自定义用户模型类,需要给模型类添加额外的字段. Django用户模型类 Django认证系统中提供了用户模型类User保存用户的数据,默认的User包含以下常见的基本字段: username必选. 150个字符以内. 用户名可能包含字母…
目录 1. 定义 字段类型 约束类型 django的模型类定义在应用下的 models.py 文件中. 模型类继承自 django.db.models 包下的 Model 类. 新创建应用 book ,我们将在此应用下做演示. python manage.py startapp book 1. 定义 以 '图书-角色'为例创建模型类 from django.db import models class Book(models.Model): b_title = models.CharField(…
模型类被定义在应用文件夹下的model.py中 模型类必须继承Django的models.Model类 属性名不能用连续的两条下划线__ 主键:primary key,简写 pk 不需要主动定义,django会自动生成自增长的主键,属性名叫 id, 如果开发者自己定义了主键,则django不会再生成默认的主键 格式: 属性名=models.字段类型(字段选项) 字段类型: 类型 说明 AutoField 自动增长的IntegerField,通常不用指定,不指定时Django会自动创建名为id的自…
Django的模型类是给ORM层服务的 1.每个数据模型都是django.db.models.Model的子类. 2.它的父类Model包含了所有必要的和数据库交互的方法,并提供了定义数据库字段的语法. 3.每个模型相当于一个数据库表(这条规则的例外情况是多对多关系,多对多关系的时候会多生成一张关系表), 4.每个属性是表中的一个字段.属性名就是字段名,类型就是字段类型 5.模型之间的三种关系 一对一(OneToOneField) 一对多(ForeignKey) 多对多(ManyToMangFi…