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

DjangoAutoField字段使用

Django是一个机智框架】 默认情况下Djang会为ORM定义每一张加上一个自增ID列,并且用这个列来做主键;出于一个MySQL-DBA工作经历我觉得 Djanog还真是机智;这样么说主要是因为我遇到过许多主从延时问题..._meta.auto_field, “Model %s can’t have more than one AutoField.” % cls....补充知识:Djangomodels下常用Field以及字段参数 一、常见FieldType数据库字段类型 1、AutoField:自增Field域,自动增加一个数据库字段类型,例如id字段就可以使用该数据类型...”_set” 4、on_delete:当删除关联数据时,当前与其关联行为,例如删除一个出版社,那么和这个出版社有关联书籍也都被删除掉了,下面介绍on_delete参数值: on_delete...False,则是限制了之间没有关联,达到了软连接效果 五、元信息 ORM对应类里面包含另一个Meta类,而Meta类封装了一些数据库信息,主要字段如下: 1、db_table:ORM在数据库默认为

6.4K20

Django——图书管理系统(六)

本文将讲述设置外键操作,关于外键更多知识,大家可以看看数据库知识。当然我依旧会在注释做出一些解释。 现在我们已经有了出版社这张,现在我们添加书籍这张。...""" class Publisher(models.Model): """ Djangomodels会默认在数据库创建主键 """ name = models.CharField...''' ForeignKey第一个参数是需要关联,可以直接写类,但是这个时候一定是该类被定义在前文。...也可以是把类变成字符串,这样就不要求该类一定被定义在前文。 第二个参数on_delete在Django2.0之后必须填写,models.CASCADE表示级联删除。...publisher_id_id这个名字很奇怪,这是因为models会自动给外键加上_id这个后缀,所以,修改我们Book类如下: class Book(models.Model): name

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

DjangoORM介绍和字段及其参数

,需要在modelMeta类中指定 db_table 参数,强烈建议使用小写,特别是使用MySQL作为后端数据库时。...意思是用于替换本类。 on_delete: 当删除关联数据时,当前与其关联行为。...Django有一套默认按照一定规则生成数据模型对应数据库,如果你想使用自定义,就通过这个属性指定,比如: table_name='my_owner_table' 若不提供该参数, Django...若你名字是一个 SQL 保留字, 或包含 Python 变量不允许字符--特别是连字符 --没关系. Django自动在幕后替你将列名字和名字用引号引起来。...在这个时间Django将管理数据库中表生命周期 如果为False时候,不会对数据库进行创建、删除等操作。可以用于现有数据库视图等,其他操作是一样

2.8K80

django 1.8 官方文档翻译: 1-2-1 编写你第一个Django应用,第1部分

一个管理网站,可让你添加、修改和删除投票项目。 我们假设你已经 安装了 Django 。...请参考 如何安装 Django 意见先删除旧版本 Django 再安装一个新。...尤其是你应该避免使用命名django (与 Django 本身会冲突) 或者 test (与 Python 内置会冲突). 这段代码应该放在哪里?...所有这些应用每个应用至少使用一个数据库,所以在使用它们之前我们需要创建数据库。...自动生成,通过组合应用 (polls) 和小写模型 – poll 和 choice 。 ( 你可以重写此行为。) 主键 (IDs) 是自动添加。( 你也可以重写此行为。)

96520

django学习-day06

###2.ORM模型 把行映射成类,把列映射成实例,把字段映射成方法 首先需要在setting设置datebase数据库信息,然后在新建appmodels创建类,继承自models.Model...,一定要在installe_apps添加app,不然不会映射生效 from django.db import models class Book(models.Model): id=models.AutoField...demo’: demo\migrations\0001_initial.py – Create model Book 有脚本提示信息之后 python manage.py migrate 映射信息到数据库...,你需要,脚本生成名字规则为,先使用app名字为前缀,然后使用你定义类名为后缀demo_book,这个就是以后存放数据了 表里面所有的字段都是你在写类时候定义属性 也就是,把你行...def index(request): # 添加一条数据到数据库 # book=Book(name=’三国演义’,author=’罗贯中’,price=’200′) # book.save(

37910

django_mysql_配置

') class Meta: db_table = 'tb_books' # 指明数据库 verbose_name = '图书' # 在admin站点中显示名称...,我们要自己定义,可通过db_table 指明数据库,不使用他默认创建Django默认以 小写app应用_小写模型类数据库。...2) django会为创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列。...null是数据库范畴概念,blank是表单验证范畴 5) 外键 一般我用CASCADE 在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用数据如何处理,在django.db.models...包含了可选常量: CASCADE 级联,删除主表数据时连通一起删除外键数据 PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被外键应用数据 SET_NULL

1.6K10

django模型

每个模型对 应数据库唯一一张 如何编写模型 模型:每个模型都用一个类表示,该类继承自django.db.models.Model。...=True) 如果Django看到你显式地设置了Field.primary_key, 就不会自动添加 id 列 每个模型只能有一个字段指定primary_key=True (无论是显式声明还是自动添加)...(或元组),用来给字段提供选择项,如果设置了 choices, 默认表单将是一个选择框,选择框选择就是choices选项 class Test(model.Model): YEAR_IN_SCHOOL_CHOICES...一个模型数 -据库名称,这个模型“应用” 和模型类名称之间加上下划线组成。 使用Meta类 db_table 参数来重写数据名称。...来表示随机排序 编写服务器模型 数据库迁移 迁移是Django用于同步你发生改变模型(添加一个字段,删除一个模型,等等)到你 数据库 迁移命令 makemigrations, 负责基于你模型修改创建一个新迁移

3.1K20

后端框架学习-Django

,它是django.db.models.Model派生出子类。...映射图: ORM———->DB 类———->数据 对象——–>数据行 属性——–>字段 数据库迁移: 迁移是Django同步您对模型所做出更改(添加字段,删除模型等)到您数据库模式方式。...: from django.db import models class 模型类(models.Model): 字段名 = models.字段类型(字段选项) class Meta...中保存在数据库,因此需要保证已经执行过了migrate Django session问题: 1.django session是单设计,且该数据量不会自动清理,哪怕是已经过期。...该方法若文件重复则django自动添加后缀 django发送邮件 业务场景: 业务报警 邮件验证 密码找回 邮件相关协议 SMTP:Simple Mail Transfer Protocol,简单邮件传输协议

9.3K40

Django—模型

只需要面向对象编程,不需要面向数据库编写代码。 在MVCModel定义类,通过ORM与关系型数据库对应,对象属性体现对象间关系,这种关系也被映射到数据。...模型类必须继承自Model类,位于包django.db.models。 提示:对于重要数据使用逻辑删除。...渲染管理表单时使用默认html控件 在管理站点最低限度验证 django会为创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列...hero.hbook 通过模型类执行关联查询- 多模型类条件查询一模型类数据: 语法如下: 关联模型类小写__属性__条件运算符=值   如果没有"__运算符"部分,表示等于,结果和sqlinner...自定义管理器类主要用于两种情况: 1.修改原始查询集,重写all()方法 2.向管理器类添加额外方法,数据库插入数据。 1.修改原始查询集,重写all()方法。

6.1K21

django 菜鸟篇+进阶篇

下面的model都同步到数据库users(这个是setting.pyDATABASES定义数据库key,不是实际数据库名字)中去 sqlall会把models.py定义model都转换成sql...,结果所有数据库中都找不到该model对应数据结构 b.而如果所有modelapp_label都对应着实际存在app,加上数据库路由是app_label和database_name...DateTimeField列类型指定了auto_now=True结果生成数据还是没有默认当前更新时间性质,google结果只说到如何在django模型层实现这个功能(下面是两个方案),但是这样在数据库层面还是没有默认当前更新时间性质....关于django自动添加primary key(id, AutoField),如果指定了其他列primary_key = True则不会自动添加这个id列;每个model必须有一个primary_key...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除

1.8K20

Django 之 Models(Models 模型 & 数据关系)

: 把面向对象思想转换成关系数据库思想,操作上把类等价于表格 类对应表格 类属性对应字段 在应用models.py 文件定义class 所有需要使用ORMclass都必须是 models.Model...子类 class 所有属性对应表格字段 字段类型都必须使用 modles.xxx 不能使用python类型 在django,Models 负责跟数据库交互 django连接数据库 自带默认数据库...``` models类使用 定义和数据库映射类 --- 在应用models.py 文件定义class 所有使用ORM class都必须是models.Models 子类 class所有属性对应表格字段...manage.py migrate 应用 对于默认数据库,为了避免出现混乱,如果数据库没有数据,每次迁移前可以把系统自带sqlite3数据库删除 数据相关操作 查看数据库数据...manage.py shell 命令行添加数据 # from 应用.models import 类 from myapp.models import Student # 实例化对象 s =

2.3K87

Django框架学习(三)

4.数据库 ORM框架: 作用:将模型类和数据进行对应,通过面向对象方式进行数据库操作。 flaskSQLALchemy Django自带ORM框架,可以直接进行使用。...__tablename__ = "" 2)Django定义模型类 class 模型类(models.Model): # 字段名 = models.字段类型(选项参数) #...class Meta: db_table = "" 数据删除时候,有一种逻辑删除:就是不是真正删除,而是做一个删除标记,比如说加一个字段,0表示删除,1表示没删除,然后展示时候根据标记展示...python manage.py makemigrations 2、迁移生成 python manage.py migrate mysql数据库: desc ;查看表结构 在我们迁移时候,Django...子应用会默认为我们创建一些, 4.4演示工具使用 4.4.1shell工具 Djangomanage工具提供了shell命令,帮助我们配置好当前工程运行环境(连接好数据库等),以便可以直接在终端执行测试

1.8K40

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

'PORT':'3306' 模型(Models) 模型是一个Python类,它是django.db.models.Model派生出子类。...一个模型类代表数据库一张数据 模型类每一个类属性都代表数据库一个字段。...迁移是 Django 同步您对模型所做更改(添加字段,删除模型等) 到您数据库模式方式 1.生成或更新迁移文件 ​ 将每个应用下 models.py 文件生成一个中间文件,并保存在 migrations...模型类Models 创建 模型类需继承自 django.db.models.Model Models 语法规范 from django.db import models class 模型类(models.Model...): 字段名 = models.字段类型(字段选项) 模型类是数据一部分,建议类首字母大写 字段名又是当前类类属性,此名称将作为数据字段名 字段类型用来映射到数据字段类型

1.8K20
领券