首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django 定义模型2.1

定义模型 在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django...会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 属性命名限制 不能是python的保留关键字 由于django的查询方式...的datetime.datetime实例表示的日期和时间,参数同DateField FileField:一个上传文件的字段 ImageField:继承了FileField的所有属性和方法,但对上传的对象进行校验...,确保它是个有效的image 字段选项 通过字段选项,可以实现对字段的约束 在字段对象时通过关键字参数指定 null:如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False...访问id:对象.属性_id heroinfo.book_id 元选项 在模型类中定义类Meta,用于设置元信息 元信息db_table:定义数据表名称,推荐使用小写字母,数据表的默认名称 <app_name

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

    Django—模型

    示例 1.打开booktest/models.py文件,定义模型类如下 from django.db import models #定义图书模型类BookInfo class BookInfo(models.Model...,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField...选项 通过选项实现对字段的约束,选项如下: null:如果为True,表示允许为空,默认值是False。 blank:如果为True,则该字段允许为空白,默认值是False。...综合演示 修改booktest/models.py中的模型类,代码如下: from django.db import models #定义图书模型类BookInfo class BookInfo(models.Model

    6.1K21

    Django中ORM介绍和字段及其参数

    ,那个相关的类对应的第三张表的字段就在前面,剩下的在后面 class Girl(models.Model): name = models.CharField(max_length=32)...Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项, admin 选项等等. 下面是所有可能用到的 Meta 选项. 没有一个选项是必需的....是否添加 class Meta 到你的 model 完全是可选的. app_label app_label这个选项只在一种情况下使用,就是你的模型类不在默认的应用程序包下的models.py文件中,这时候你需要指定你这个模型类是那个应用程序的...若提供该选项, 该模块将拥有一个 get_latest() 函数以得到 "最新的" 对象(依据那个字段): get_latest_by = "order_date" managed 由于Django会自动根据模型类生成映射的数据库表...verbose_name verbose_name的意思很简单,就是给你的模型类起一个更可读的名字: verbose_name = "pizza" 若未提供该选项, Django 则会用一个类名字的 munged

    2.8K80

    Django设计模型1.2

    项进行数据库设置 django支持的数据库包括:sqlite、mysql等主流数据库 Django默认使用SQLite数据库 创建应用 在一个项目中可以创建一到多个应用,每个应用进行一种业务处理 创建应用的命令...: python manage.py startapp booktest 应用的目录结构如下图 定义模型类 有一个数据表,就有一个模型类与之对应 打开models.py文件,定义模型类 引入包from...django.db import models 模型类继承自models.Model类 说明:不需要定义主键列,在生成时会自动添加,并且值为自动增长 当输出对象时,会调用对象的str方法 from django.db...h=HeroInfo() h.htitle=u'郭靖' h.hgender=True h.hcontent=u'降龙十八掌' h.hBook=b h.save() 获得关联集合:返回当前book对象的所有...'黄蓉',hgender=False,hcontent=u'打狗棍法') h

    45110

    django2.0入门教程第二节

    这个选项代表django激活的应用,这些应用能被多个项目使用,你也可以将这些应用进行打包分发 有些应用要求我们必须至少要有一个数据库,如,django的后台,因此,让我们先来执行以下命令: $ python...OK 以上命令将django激活的应用所需的数据表创建好了 创建模型 django的模型(models)在本质上就是对数据表的定义。...在django中是不需要直接与数据库交互的,所有对数据库的操作都可以映射为模型类的操作,有一个数据表,就有一个模型类与之对应 polls/models.py #_*_coding:utf8_*_ from...models.Model的子类,类中的每个属性映射为一个字段,并标识了这些字段的类型 激活模型 mysite/settings.py INSTALLED_APPS = [ 'polls.apps.PollsConfig...OK 至此,models类的代码就转换成了数据表 django命令行交互 django提供了一个交互的shell,执行python manage.py shell即可进入交互界面,默认的交互界面不太好用

    71630

    django 1.8 官方文档翻译:2-1-1 模型语法

    元选项 使用内部的class Meta 定义模型的元数据,例如: from django.db import models class Ox(models.Model): horn_length...在模型中添加class Meta是完全可选的,所有选项都不是必须的。 所有元选项的完整列表可以在模型选项参考找到。...如果子类想要扩展父类  的,可以继承父类的 Meta 即可,例如 from django.db import models class CommonInfo(models.Model): #...例如,包含 db_table将意味着所有的子类(是指那些没有指定自己的 Meta 类的子类)都使用同一张数据表,一般来说,这并不是我们想要的。...多表继承中的Meta 在多表继承中,子类继承父类的 Meta类是没什么意义的。所有的 Meta 选项已经对父类起了作用,再次使用只会起反作用。

    5K20

    django 1.8 官方文档翻译: 2-1-1 模型语法(初稿)

    还有一些适用于所有字段的可选的通用参数,这些参数在 参考(reference) 中有详细定义,这里我们只简单介绍一些最常用的: null 如果为 True, Django 在数据库中会将空值(empty...如果设置了 choices ,Django 的管理后台就会显示选择框,而不是标准的文本框,而且这个选择框的选项就是 choices 中的元组。...Meta 选项 通过使用一个内含的 class Meta 来为你的model 添加元数据,例如: class Ox(models.Model): horn_length = models.IntegerField...例如,包含 db_table 将意味着所有的子类(是指那些没有指定自己的 Meta 内嵌类的子类)都使用同一张数据表,一般来说,这并不是我们想要的。...多表继承中的Meta 在多表继承中,子类继承父类的 Meta 内嵌类是没什么意见的。所有的 Meta 选项已经对父类起了作用,再次使用只会起反作用。

    3.1K30

    Django 系列博客(四)

    比如在大名鼎鼎的 pythonWEB 框架 Django 就是使用了对象关系映射,这个对应 Django 中的 model文件。...这个类也是 render 和 redirect 需要调用的类来实例化对象。不过直接由 HttpResponse 类生成的对象是字符串,没有页面显示。...ORM 连接数据库 ORM 连接 sqlite3 配置 settings 文件 其实不用配置,默认就是连接 sqlite3 在 settings 里面有个数据库配置选项: DATABASES = {...第一张表app_userinfo为 models 中创建的类所对应的表(mysql 不区分大小写),并且会自动将 app 的名字拼接到表名之前,之后 auth 开头的表示关于认证的表,django 开头的表示...,在本文的数据库对象就是UserInfo.object,打印出来可知该对象是app.UserInfo.objects类 通过这个这个类(对应数据库中的表)可以操作数据库 增 # 该表有两个三个字段,其中

    62710

    【Django】在大型项目中的django的性能模型字段primary_key

    ,然后引用它,但在模型类中定义选择和每个选择的名称可以在使用它的类中保留所有这些信息,并帮助引用这些选择(例如,Student.SOPHOMORE将在导入学生模型的任何位置工作)。...还可以将可用的选项收集到可用于组织目的的命名组中: from django.db import models class Student(models.Model): FRESHMAN = '...第二个元素是二进制元组的迭代。每个二进制元组包含一个值和一个可读的选项名称。分组选项可以与单个列表中的未分组选项组合(例如本例中的“未知”选项)。...from django.utils.translation import gettext_lazy as _ class Student(models.Model): class YearInSchool...所有这些都将存储在数据库中的文件路径中(相对于MEDIA_ROOT)。可能会使用Django提供的方便的url属性。

    2.1K20

    从 Django 模型中根据类查找外键

    在 Django 中,如果你有一个模型类,并希望找出哪些其他模型定义了指向该模型的外键,可以使用 Django 的元选项 (Meta) 和 ForeignKey 的反向关系属性。...1、问题背景在使用 Django 开发项目时,我们经常需要在不同的模型之间建立外键关系。...我们还可以在模型类中定义一个 get_foreign_key_to() 方法,该方法返回指向给定类的外键字段。...# 在模型类中定义一个 `get_foreign_key_to()` 方法class Book(models.Model): author = models.ForeignKey('Author'...它首先迭代模型的所有字段,然后检查每个字段是否指向 Foo 对象。如果找到这样的字段,则将其返回。如果找不到这样的字段,则引发 FieldDoesNotExist 异常。

    8810

    Django实战-调查问卷表设计优化

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...在django中,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的id和一个具体表中的id找到任何记录...显然是不能,一旦数据库被创建了,几乎很少再去修改数据,如果再给其添加额外字段,无疑会带来不必要的麻烦。为此,可以利用Django自带的ContentType类,来做这件事情。...from django.contrib.contenttypes.models import ContentType class Survery(models.Model): """...): """ 问卷选项答案(针对选项类型) ID item content points 1 2 A 10分

    1.8K20

    Django 模型继承 BaseModel

    Meta 继承 当一个抽象基类被建立,Django 将所有你在基类中申明的 Meta 内部类以属性的形式提供。若子类未定义自己的 Meta 类,它会继承父类的 Meta。...当然,子类也可继承父类的 Meta,比如: from django.db import models class CommonInfo(models.Model): # ......由于Python继承的工作方式,如果子类从多个抽象基类继承,则默认情况下仅继承第一个列出的类的 Meta 选项。为了从多个抽象类中继承 Meta 选项,必须显式地声明 Meta 继承。...Meta 和多表继承 多表继承情况下,子类不会继承父类的 Meta。所以的 Meta 类选项已被应用至父类,在子类中再次应用会导致行为冲突(与抽象基类中应用场景对比,这种情况下,基类并不存在)。...通用性规则: 当你克隆一个已存在模型或数据表时,并且不想要所以的原数据表列,配置 Meta.managed=False。这个选项在模型化未受 Django 控制的数据库视图和表格时很有用。

    2.1K10

    Django——ContentType(与多个表建立外键关系)及ContentType-signals的使用

    一、ContentType  在django中,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的...:Post类 :param instance: 监测的类:Post类 :param signal: 信号类 :param args: :param kwargs:...post相关联的所有事件,最重要的一点是如果没有这个字段,那么当删除一篇post的时候,与该post关联的事件是不会自动删除的。...反之有这个字段就会进行自动的级联删除 三、ContentType其他案例总结 案例一、调查问卷表设计   例如:设计如下类型的调查问卷表:问卷类型包括(打分,建议,选项),先来看看一个简单的问答, 您最喜欢吃什么水果...显然是不能,一旦数据库被创建了,我们几乎很少再去修改数据,如果再给其添加额外字段,无疑会带来不必要的麻烦。为此,我们可以利用Django自带的ContentType类,来做这件事情。

    4.4K20

    Django模型model

    Django模型类开发流程 在models.py中定义模型类,要求继承自models.Model 把应用加入settings.py文件的installed_app项 生成迁移文件 执行迁移生成表 使用模型类进行...会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 属性命名限制 不能是python的保留关键字 由于django的查询方式,不允许使用连续的下划线...模型类中字段选项 通过字段选项,可以实现对字段的约束 在字段对象时通过关键字参数指定 null:如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False blank:如果为True...class BookInfo(models.Model): books = models.Manager() 当为模型类指定管理器后,django不再为模型类生成名为objects的默认管理器 管理器是...模型自关联 对于地区信息,属于一对多关系,使用一张表,存储所有的信息 类似的表结构还应用于分类信息,可以实现无限级分类 class AreaInfo(models.Model): atitle = models.CharField

    15310

    Django教程 —— 模型类详解

    引言 在之前的 Django模型设计 中简单的介绍了如何定义模型类,在这篇中将做一个汇总。让大家更加了解Django模型类。...环境 环境名称 版本 Python 3.9 Django 3.1.2 MySql-Server 5.7.32 PyMySQL 0.10.1 模型类的特性 Django 模型类会根据属性的类型确定以下信息...如果具有不同主键字段的模型,它还可以提高您的一致性。 模型类的字段属性及选项 模型类属性命名限制 不能是python的保留关键字。...定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性 = models.字段类型(选项) 模型类的字段类型 使用时需要引入django.db.models 包 from django.db...当修改模型类之后,如果添加的选项不影响表的结构,则不需要重新做迁移,属性的选项中 default 和blank 不影响表结构。

    1.7K20

    【Django】 开发:静态文件,应用和模型层

    'bookstore', ] 添加模型类 # file : bookstore/models.py from django.db import models class Book(models.Model...模型类Models 创建 模型类需继承自 django.db.models.Model Models 的语法规范 from django.db import models class 模型类名(models.Model...): 字段名 = models.字段类型(字段选项) 模型类名是数据表名的一部分,建议类名首字母大写 字段名又是当前类的类属性名,此名称将作为数据表的字段名 字段类型用来映射到数据表中的字段的类型...删除 所有 migrations 里所有的 000?...CRUD操作) CRUD是指在做计算处理时的增加(Create)、读取查询(Read)、更新(Update)和删除(Delete) 管理器对象 每个继承自 models.Model 的模型类,都会有一个

    1.8K20

    Django3.2边学边记—Adimn站点管理

    准备工作 创建管理员的用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...ModelAdmin类可以控制不同模型在Admin界面中的展示方式,主要包括在列表页的展示方式、添加修改页的展示方式 上文中展示了TestAdmin类的一种注册方法,还有一种方法,就是使用装饰器注册,...页大小 每页中显示多少条数据,默认为每页显示100条数据,设置为20 12 class TestAdmin(admin.ModelAdmin):    list_per_page = 20 操作选项的位置...list_display = ['id','title','pub_date']   或者模型方法,要求方法有返回值,如下在模型类中定义一个方法  1234 class TestInfo(models.Model...,并返回所有包含这些词的对象,不区分大小写(即 icontains 查找:不区分大小写的包含匹配),其中每个词必须在 search_fields 中至少有一个。

    1.2K00

    Django 2.1.7 模型类 - 字段类型

    在官方文档中,关于字段类型的描述非常多,如下: 模型字段的定义属性 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列...” 属性命名限制: 不能是python的保留关键字。 不允许使用连续的下划线,这是由django的查询方式决定的。...定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField...ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片。 选项 通过选项实现对字段的约束,选项如下: null:如果为True,表示允许为空,默认值是False。...编写模型类演示 有了上面关于字段类型的相关说明,下面来丰富一下我这边编写的模型类字段属性,如下: class ServerInfo(models.Model): server_hostname

    1.2K10
    领券