多对多的三种创建方式 1.全自动(推荐使用的**) 优势:第三张可以任意的扩展字段 缺点:ORM查询不方便,如果后续字段增加更改时不便添加修改 manyToManyField创建的第三张表属于虚拟的,后缀会自动添加有_id的外键字段 创建的方式: 2.纯手动(不推荐使用) 需要手动创第三方表 优势:第三张表可以任意的扩展字段 缺点:ORM查询不便  3.半自动(推荐使用***) 优势:结合了全自动和半自动的两个优点,把建表的关系直接在一张表上表示出来 这样创建的表,在多对多时不支持ORM的操作有…
多对多的三种创建方式 1.全自动(就是平常我们创建表多对多关系的方式) class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8,decimal_places=2) authors = models.ManyToManyField(to='Author') class Author(models.Model): name = models.C…
摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller 模型-视图-控制器)是一种Web架构的模式,所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求. M…
目录 表模型类多对多关系的三种创建方式 django forms 组件 登录功能手写推理过程 整段代码可以放过来 forms 组件使用 forms 后端定义规则并校验结果 forms 前端渲染标签组件 forms 组件其他知识点(服务器端的) 在 python console 测试 forms 组件数据校验规则 其他几个常见字段类型 forms 所有内置字段类型 forms 组件字段常见参数 forms 组件钩子函数 forms 校验最终版 forms 校验源码分析 cookie 与 sessi…
MTV与MVC MTV模型(django): M:模型层(models.py) T:templates V:views MVC模型: M:模型层(models.py) V:视图层(views.py) C:控制器(Controller) urls.py 本质:django的MTV也是MVC 多对多表三种创建方式 1.第一种 django orm自动帮我们创建 class Book(models.Model): name = models.CharField(max_length=32) autho…
多对多三种创建方式.forms组件.cookies与session 一.多对多三种创建方式 1.全自动 # 优势:不需要你手动创建第三张表 # 不足:由于第三张表不是你手动创建的,也就意味着第三张表字段是固定的无法做扩展 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8,decimal_places=2) authors = mode…
目录 多对多三种创建方式 全自动 全手动 半自动 form组件 基本使用 form_obj 及 is_valid() 前端渲染方式 取消前端自动校验 正则校验 钩子函数(Hook方法) cleaned_data 主动抛错误信息 局部钩子 全局钩子 多选框(了解知识点) radioSelect 单选Select 多选Select 单选checkbox 多选checkbox 多对多三种创建方式 # 补充知识点 related_name 参数 正反向查询的name publish = models.F…
看到上面的标题,相信大家已经知道我们接下来要探讨的知识了,一共两点:1.package命名空间设置:2.三种Action的创建方式.下面我们开始本篇的内容: 首先我们聊一聊命名空间的知识,namespace决定了action的访问路径,默认为"",可以接受所有路径的action,namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action,na…
JavaScript闭包的详细理解 一.原理:闭包函数--指有权访问私有函数里面的变量和对象还有方法等:通俗的讲就是突破私有函数的作用域,让函数外面能够使用函数里面的变量及方法. 1.第一种创建方式 function test(){ var x=10; return function(){ return x; } } var a=test(); alert(a); //弹出test函数私有变量x,结果:10 2.第二种创建方式 var y; function test(){ var x=10;…
实现多线程 简单了解多线程[理解] 是指从软件或者硬件上实现多个线程并发执行的技术. 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能. 并发和并行[理解] 并行:在同一时刻,有多个指令在多个CPU上同时执行. 并发:在同一时刻,有多个指令在单个CPU上交替执行. 进程和线程[理解] 进程:是正在运行的程序 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位 动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的 并发性:任何进程都可…
直接实现 Servlet 接口不太方便,所以 Servlet 又内置了两个 Servlet 接口的实现类(抽象类),分别为 GenericServlet 和 HttpServlet,因此,创建 Servlet 类有如下三种方式: 实现 javax.servlet.Servlet 接口,重写其全部方法. 继承 javax.servlet.GenericServlet 抽象类,重写 service() 方法. 继承 javax.servlet.http.HttpServlet 抽象类,重写 doGe…
第一种: class Book(models.Model): name = models.CharField(max_length=32) # 第一种自动创建 authors = models.ManyToManyField(to='Author') class Author(models.Model): name = models.CharField(max_length=32) 第二种: class Book2(models.Model): name = models.CharField(m…
创建Bean的三种方式在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法.实际上,Spring支持使用以下三种方式来创建Bean:(1)调用构造器创建Bean(2)调用静态工厂方法创建Bean(3)调用实例工厂方法创建Bean一 构造器创建Bean实例如果不采用构造注入,Spring底层会调用Bean类的无参数构造器来创建实例,因此该类必须要提供无参数的构造器,并且class属性的值就是该B…
spring共提供了三种实例化bean的方式:构造器实例化(全类名,反射).工厂方法(静态工厂实例化   动态工厂实例化)和FactoryBean ,下面一一详解: 1.构造器实例化 City.java package com.proc.bean; public class City { private String name; private String code; public City() { } public City(String name, String code) { this.…
一.Xml的创建方式 Xmlwriter(流式读取,Stream) 写过了:https://www.cnblogs.com/dengzhekaihua/p/15438493.html 这种方法虽然快,但是只能写一遍,一次性全部写完,不方便进行修改 2.通过Xelement直接写xml(Linq to xml) 点击查看代码 XElement xElement = new XElement( new XElement("ProductType", new XElement("B…
ftp(简单文件传输协议),是一种应用广泛的网络文件传输协议和服务,占用20和21号端口,主要用于资源的上传和下载. 在linux对于ftp同widows一样具有很多的种类,这里主要介绍vsfptd(非常安全的守护进程) 的三种登录方法(匿名登录和本地登录及虚拟登录)极其一些主要的配置 首先用yum安装vsftpd /etc/vsftpd/vsftpd.conf为ftp的主要配置文件 启动ftp服务 :service vsfptd restart 把其加入到开机项 匿名登录 匿名用户登录ftp…
一. 直接使用imageNamed进行创建 UIImage * image = [UIImage imageNamed:@"1.jpg"]; 简单说一下这种方式的优缺点: 优点:代码量少,一行代码就可以搞定.当程序中多次加载这张图片时,系统会指向同一块内存,这样可以提升效率. 缺点:系统每次会将图片缓存到计算机的内存中去,如果图片非常大,非常多,会消耗很大的计算机内存,会出现卡顿的现象. 二.将本地图片转换成NSData类型存储 NSString *filePath = [[NSBun…
创建线程一般有如下几个方式: 1. 通过继承Thread类来创建一个线程: /** * 步骤1:定义一个继承Thread类的子类 * 步骤2:构造子类的一个对象 * 步骤3:启动线程: * */ public class ThreadTest{ public static void main(String[] args) { //构造子类对象 SubThread subThread = new SubThread(); //启动线程 subThread.start(); } } //定义继承Th…
变量 instanceof 类型的名字----->布尔类型,true就是这种类型,false不是这种类型 在当前的对象的方法中,可以使用this关键字代表当前的对象   1.调用系统的构造函数创建对象 var 变量名= new Object(); Object 是系统的构造函数 Array 添加属性-----如何添加属性? 对象.名字=值; 修改属性-----如何修改属性? 对象.名字=值; 添加方法-----如何添加方法? 对象.名字=函数; 属性调用-----对象名.属性 或者 对象名[“属…
servlet 是运行在 Web 服务器(tomcat)中的小型 Java 程序(即:服务器端的小应用程序) (其实就是一个java类,只不过不用再new了).servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求 一.实现javax.servlet.Servlet接口 写一个java类,实现servlet接口 输入impl 然后alt+/可以自动补齐 . 鼠标放在Servlet上可以自动出现要包含的包名. 下图鼠标放在1的位置然后选择2这样就会出现要实现的方法…
1.使用类构造器实例化  (90%以上都是使用这种) <bean id=“orderService" class="cn.itcast.OrderServiceBean"/> 2.使用静态工厂方法实例化 <bean id="personService" class="cn.itcast.service.OrderFactory" factory-method="createOrder"/> p…
1.声明式 function fn() { //do something } 2.函数表达式 let fn = function () { //do something } 3.构造函数 function Person(name,age){ this.name=name this.age=age } let fn = ')…
2.2使用类创建组件 类组件:使用ES6的class创建的组件 约定1:类组件必须以大写字母开头 约定2:类组件应该继承react.component父类 从中可以使用父类的方法和属性 约定3:组件必须提供render方法 约定4:render方法必须有返回值 //导入react     import React from "react"           import ReactDOM from "react-dom"           // 约定1:类组件必…
目录 多对多关系表的三种创建方式 1.全自动,Django自动创建 2.纯手撸 3.半自动(推荐使用) forms组件 小例子 forms组件 校验器 钩子函数 局部钩子 全局钩子 forms组件常用字段与插件 initial初始值,input框里面的初始值. error_messages重写错误信息. password radioSelect单radio值为字符串 单选Select 多选Select 单选checkbox 多选checkbox choice字段注意事项 Django Form所…
在java的实际开发过程中,我们可能常常需要使用到init method和destroy method,比如初始化一个对象(bean)后立即初始化(加载)一些数据,在销毁一个对象之前进行垃圾回收等等. 周末对这两个方法进行了一点学习和整理,倒也不是专门为了这两个方法,而是在巩固spring相关知识的时候提到了,然后感觉自己并不是很熟悉这个,便好好的了解一下. 根据特意的去了解后,发现实际上可以有三种方式来实现init method和destroy method. 要用这两个方法,自然先要知道这两…
一.前言 放了个元旦,休息了三天,加上春运抢票一系列事情的冲击,我感觉我的心已经飞了.确实应该收收心,之前计划的学习任务也严重脱节了:我恨不得打死我自己. 在上篇博客中,笔记记录到了关于构造函数方面的一些写法和用法,这篇博客,会从原书中数组直接量开始,自己读了下之前的博客,还是有点照搬概念的意思,想了下,还是得简化概念,按照自己的思路去写,那么开始. 二.数组直接量 概要:创建数组的两种方式,Array()创建的隐性问题 在JS中,数组也是对象,我们可以通过内置构造函数Array()创建数组,也…
C++对父类(也称基类)的继承有三种方式,分别为:public继承.protected继承.private继承.三种继承方式的不同在于继承之后子类的成员函数的"可继承性质". 在说三种继承方式导致的子类成员函数可继承性质改变之前,先说一下在定义类的成员(包括函数和属性)的时候,在其前面添加public 或 protected 或 private对成员的可继承性的影响.其中,public类型的成员,在被继承的时候,能直接被子类使用,注意,如果成员属性是public的话,子类则可直接调用该…
SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论   异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 后台创建了一个DntHub的集线器 前台在调用的时候出现了问题(经检查是代理对象创建失败) 于是到StackOverflow上面找了下: http://stackoverflow.com/questions/1…
1.创建bar.html文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>time</title> </head> <body> <li>1.当前时间:{{today}}</li><br> <li>my id:{{id}}<…