一.外键的删除 1.常见的使用方式(设置为null) class BookModel(models.Model): """ 书籍表 """ book_name = models.CharField(max_length=100, verbose_name='书名') # 表示外键关联到作者表,当作者表删除了该条数据,图书表中不删除,仅仅是把外键置空, 这里需要设置可以把外键置空 author = models.ForeignKey(AuthMod…
on_delete指的是通过ForeignKey连接起来的对象被删除后,当前字段怎么变化. 常见的选项有: models.CASCADE,对就对象删除后,包含ForeignKey的字段也会被删除 models.PROTECT,删除时会引起ProtectedError models.SET_NULL,注意只有当当前字段设置null设置为True才有效,此情况会将ForeignKey字段设置为null models.SET_DEFAULT ,同样,当前字段设置了default才有效,此情况会将For…
原文地址:http://www.2cto.com/database/201501/367791.html 一.基本概念 1.MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引.用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引. 2.外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接. 3.如…
一.表完整性约束 作用:用于保证数据的完整性和一致性==============================================================约束条件  说明PRIMARY KEY (PK)    标识该字段为该表的主键,可以唯一的标识记录,不可以为空 UNIQUE + NOT NULLFOREIGN KEY (FK)  标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联NOT NULL 标识该字段不能为空UNIQUE KEY (U…
SQLServer 2005 SELECT d.name N'TableName', d.xtype N'TableType', a.colorder N'ColumnIndex', a.name N'ColumnName', ( ' end) N'IdnetityFG', (case when (SELECT count(*) FROM sysobjects WHERE (name in (SELECT name FROM sysindexes WHERE (id = a.id) AND (i…
这是因为引用列必须为一个主键才行…
外键:主要是关联两个表的 举个栗子:在建表中创建外键 -- 添加外键例子 CREATE TABLE teacher( id TINYINT PRIMARY KEY auto_increment, name ), age int, is_marryed boolean ); CREATE TABLE student( id TINYINT PRIMARY KEY auto_increment, name ), charger_id TINYINT, FOREIGN KEY (charger_id)…
本节所讲内容: 字段修饰符 清空表记录 索引 外键 视图 一:字段修饰符 (约束) 1:null和not null修饰符   我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null); mysql> insert into worker values(1,'HA','123456'); mysql> insert into worke…
目录 一.ORM查询优化 1. all()查询 2. only()/defer()方法 (1)only()方法 (2)defer()方法 3. select_related()/prefetch_related() (1)select_related() (2)prefetch_related() (3)select_related()/prefetch_related()的优缺点 二.MTV与MVC模型 1. MTV模型 2. MVC模型 三.chioces参数 四.Ajax 1. Ajax语…
Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 方式1: 任意创建一个py文件,在该文件内书写固定的配置 import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoProject2.settings') import dj…
字段的修改.添加和删除 create table tf1( id int primary key auto_increment, x int, y int ); #修改 alter table tf1 modify x char(4) default''; alter table tf1 change y m char(4) default ''; #增加 alter table 表名 add 字段名 类型[(长度) 约束]; >:alter table student add name cha…
目录 一.Response封装 二.外键字段深度查询 1.序列化配置exclude.depth 2.模型层函数.插拔式字段查询 三.listserializer辅助类 一.Response封装 用def自带的response模块返回数据需要data和status等参数,就算有相同的response也需要重新写一遍,这样显得很不方便. 因此我们可以将response模块进行二次封装,减少一些代码的重复书写,这样就可以使我们的工作量变小. 方法: 在应用文件夹中重新写一个response.py文件,…
package hello; import java.util.Arrays; public class 实验三更正版 { public static void main(String[] args) { // TODO Auto-generated method stub // TODO Auto-generated method stub double a[]={15,12,18,0,6,99,8}; double s=0; for(int i=0;i<a.length;i++) { Sys…
models之字段类型和参数 示例: # class Test(models.Model): # courses_test # """测试学习用""" # # Auto = models.AutoField() # 自增长字段 # # BigAuto = models.BigAutoField() # # # 二进制数据 # Binary = models.BinaryField() # # # 布尔型 # Boolean = models.Bo…
ORM 相关 #sql中的表 #创建表: CREATE TABLE employee( id INT PRIMARY KEY auto_increment , name VARCHAR (), gender BIT , birthday DATA , department VARCHAR (), salary DECIMAL (,) unsigned, ); #sql中的表纪录 #添加一条表纪录: INSERT employee (name,gender,birthday,salary,depa…
js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可) 一.总结 1.XMLHttpRequest的responseText接收到获取的数据 2.XMLHttpRequest的statusText属性得到服务器状态相关的文本(另外的属性) 如果ajax和php联合使用的话:open的第二个参数文件路径改成请求php的url即可 xmlhttp.open("GE…
为什么要在INSTALLED_APPS中加入crispy_forms? 因为django-crispy-forms 是对django form在html页面呈现方式进行管理的一个第三方插件. 为什么有时候定义model时,会将外键设置成指向自己? 比如有这种需求,一个商品类目(GoodsCategory)的Model,它有一个字段是父级目录(parent_category),父级目录应该是一个外键并引用GoodsCategory, 即 class GoodsCategory(models.Mod…
Django支持修改表结构 把max_length=64 改为60 再执行一遍 python manage.py makemigrations python manage.py migrate 如果是增加一列 再执行一遍 python manage.py makemigrations 会出现众多选项 如果选择1,会让你输入一个默认值  我们输入“alex” 再执行python manage.py migrate 就更新了数据库 ------------- 如果新加的一列可为空值Null 再执行一…
假设有两张表,Role和User,因为多个用户会对应一个角色,属于多对一关系,所以User中的rolename字段使用ForeignKey,第一个参数为要关联的表Role,第二个参数related_name是用来反查这个角色下有几个用户时用的. class Role(models.Model): ''' 角色表 ''' role_name = models.CharField(max_length=50) create_time = models.DateTimeField(auto_now_a…
使用 POST 方式请求 JSON 数据到服务器 WebAPI 接口时需要将 JSON 格式封装成数据模型接收参数.即使参数较少,每个接口仍然需要单独创建模型接收.下面方法实现了将 JSON 参数中的字段作为接口参数接收.实现的并不完美,现在只支持 JSON 格式顶级结构字段作为参数使用,且未处理复杂格式参数. 每个接收参数都会进行 JSON 反序列化操作,故参数多的情况下创建模型接收显然更节省资源. 以下方法只进行过简单测试,如有问题,还请大佬们自行解决,解决后希望能在此留言与诸位网友分享.…
1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show databases' -uroot -p123456 mysqlshow -uroot -p123456 # 不常用,记住上面那个就行了 3.创建数据库语法 create database 数据库名; 例如: create database `HA-test`; 4. 切换数据库 use HA-te…
一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null); mysql> insert into worker values(1,'HA','123456'); mysql> insert into worker values(1,'LB',null); ERROR 1048 (2…
在django项目的开发过程中,在设计模型时一开始将主键设置成了一个自定义的字段,但是在创建搜索索引时却发现必须要存在一个id的字段,并且为主键(不知道是否是项目一开始就这样配置的原因), 但此时表结构已经整体固定下来,并且有外键关联到了这个自定义的的主键,整个后台视图逻辑也已经封装完成,如果主表的主键发生改变,那么外键所在的表就会默认关联到新的主键上,那个后台视图的改动就会非常麻烦,这时就需要使用外键字段中的to_field属性来指定所关联的主表的某个字段,而不会影响到原先的逻辑 demo如下…
1.创建model: 定义hv表,保存hv server infors: 定义vm表,保存vm infors: 一个vm只能对应一台hv server:一台hv server可以包含有多台vm class hv(models.Model): name=models.CharField(max_length=100,unique=True) # unique不需要,primary_key=True ip=models.GenericIPAddressField() def __str__(self…
model class UserProfile(AbstractUser): nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="") gender = models.CharField(max_length=6, choices=(("male",u"男"),("female","女")),…
两个方法其实是一种,用哪个都行,看实例:   方法一: 从list_filter中的字符串,找到model对象的字段,然后得到这个外键对应的类 循环,把list_filter中对应的类所有对象 方法二:     两方法实际上是一样的,导入方式和使用方式不同: 方法一:         导入:from django.db.models.fields.related import ForeignKey,ManyToManyField         使用:field.rel.to 方法二:     …
SQL 数据库 学习 007 通过一个示例简单介绍什么是字段.属性.列.元组.记录.表.主键.外键 (上) 我们来介绍一下:数据库是如何存储数据的. 数据库是如何存储数据的 来看一个小例子 scott 是Orale软件里面的一个例子,适合初学者学习. 现在,假如我们现在想存储员工的信息.也就是说:我们来通过这个例子来看看 字段.记录.表 是一个什么东西. 我们下面通过存储一个员工的信息,来把这些专业术语都来解释一遍. 假设有4个信息: 员工姓名 员工工资 员工性别 员工年龄 我们能不能这样去存储…
对于一个img元素,我们想获取它的src属性时可以有两种方式: 1.xxx.getAttribute("src") 2.直接通过xxx.src获取属性值 在src的属性值为相对路径时,这两者的结果在不同浏览器会有一些不同哦. 以此为例: var img=document.getElementById('logo'); alert("src:"+img.src); // iE7-: src:http://localhost/test/images/logo.png /…
# -*- coding: utf-8 -*- """ Tencent is pleased to support the open source community by making 蓝鲸智云(BlueKing) available. Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved. Licensed under the MIT License (the "Li…
class UsserGroup(models.Model): uid = models.AutoField(primary_key=True) caption = models.CharField(max_lenght=, unique=True) class UserInfo(models.Model): username = models.CharField(max_length=,blank=True,verbose_name = '用户名') password = models.Cha…