数据库视图

django请求生命周期

删除回忆录丶 提交于 2019-12-05 04:42:57
1. 概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串. 在Django中,当我们访问一个的url时,会通过路由匹配进入相应的html网页中. Django的请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情 而Django的生命周期内到底发生了什么呢?? 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了. 3. 视图函数根据客户端的请求查询相应的数据.返回给Django,然后Django把客户端想要的数据做为一个字符串返回给客户端. 4. 客户端浏览器接收到返回的数据,经过渲染后显示给用户. 视图函数根据客户端的请求查询相应的数据后.如果同时有多个客户端同时发送不同的url到服务端请求数据 服务端查询到数据后,怎么知道要把哪些数据返回给哪个客户端呢?? 因此客户端发到服务端的url中还必须要包含所要请求的数据信息等内容. 例如, http://www.aaa.com/index/?nid

SQL 相关

不打扰是莪最后的温柔 提交于 2019-12-05 04:28:08
数据库:保管数据的仓库,以及数据管理的方法和技术。 数据库的特点:实现数据共享,减少数据冗余; 采用特定的数据类型; 具有较高的数据独立性;具有统一的数据控制功能; 数据库系统主要组成部分: 数据库、数据库管理系统、数据库应用程序。 SQL = Structured Query Language 结构化查询语言 SQL 和 NoSQL = 关系型数据库 和 非关系型数据库 mysql优势:运行速度快 免费 复杂程度较低,易于学习 跨平台可移植 丰富的接口 支持查询语言。。 终端连接数据库: mysql -u用户名 -p密码 -h连接主机 -P端口 比较重要的存储引擎: InnoDB MyISAM 另外还有: Memory Archive ----show engines:查看所有存储引擎 InnoDB 支持事务,行级别锁,外键,mysql的默认存储引擎 MyISAM 仓库引擎/存储引擎,增删改比较快 修改表名:alter table 旧表名 rename 新表名; 修改字段的数据类型:alter table 表名 modify 字段名 数据类型; 修改字段名:alter table 表名 change 旧字段名 新字段名 数据类型; 添加字段:alter tabale 表名 add 新字段名 数据类型; 删除字段:alter table 表名 drop 字段名; 修改字段的排列位置

DRF笔记

只谈情不闲聊 提交于 2019-12-05 02:13:56
@api_view(['GET', 'PUT', 'DELETE']) def snippet_detail(request, pk): """ Retrieve, update or delete a code snippet. """ try: snippet = Snippet.objects.get(pk=pk) except Snippet.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = SnippetSerializer(snippet) return Response(serializer.data) elif request.method == 'PUT': serializer = SnippetSerializer(snippet, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method =

数据库——视图、事务、索引、外键

落花浮王杯 提交于 2019-12-05 01:44:31
视图: • 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 视图的引入: 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结构如下:   测试表:usera有id,name,age字段    测试表:userb有id,name,sex字段   这时如果php端使用sql语句:select * from user;那就会提示该表不存在,这时该如何解决呢。解决方案:创建视图。以下sql语句创建视图:    create view user as select a.name,a.age,b.sex from usera as a, userb as b where a.name=b.name; 视图本质:   就是对查询的封装 定义视图:    建议以v_开头 create view 视图名称 as select语句; 视图相关命令: 查看视图:   查看表会将所有的视图也列出来 show tables; 删除视图:   drop view 视图名称; drop view v_stu_score_course; 使用:   视图的用途就是查询 select * from v_stu_score_course; 例: • 学生表 • 班级表 create view v_student_info

mysql 事务

两盒软妹~` 提交于 2019-12-04 22:07:20
ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性) 事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务, MyISAM 引擎就不支持事务。 当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题。 隔离级别   隔离得越严实,效率就会越低。因此很多时候,我们都要在二者之间寻找一个平衡点。 读未提交(read uncommitted):一个事务还没提交时,它做的变更就能被别的事务看到。 读提交(read committed):一个事务提交之后,它做的变更才会被其他事务看到。 可重复读(repeatable read):一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。 串行化(serializable ):串行化,顾名思义是对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。         1. 若隔离级别是

Mysql DDL语句之视图

本小妞迷上赌 提交于 2019-12-04 21:02:40
Mysql 视图是一个虚拟表,内容由 select 查询语句定义, 同真实的表数据一致, 但是视图并不在数据库中以存储的数据值形式存在。 试图引用自定义查询表的字段, 并且在引用试图时动态生成, 对其所引用的基础表来说 Mysql 视图的作用类似于筛选。 创建视图 创建视图 查看视图 修改视图 删除视图 toc 定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。 视图查询没有任何限制,通过它们进行数据修改时的限制也很少。 视图是存储在数据库中的 SQL 查询语句,它主要出于两种原因: 安全原因, 视图可以隐藏一些敏感的信息。 简化查询, 使复杂的查询易于理解和使用 创建视图 创建单表视图环境准备 ## 创建表 mysql> use test; mysql> create table t2( id int primary key AUTO_INCREMENT not null, name varchar(30) not null, sex enum('man','gril') default 'man' not null, time date not null, post varchar(50) not null, job varchar(100), salary double(15,2) not null, dep_id int ); ## 插入数据 mysql>

view 视图

只谈情不闲聊 提交于 2019-12-04 20:52:52
   作用一:    提高了重用性,就像一个函数。 如果要频繁获取user的name和goods的name。就应该使用以下sql语言。示例:   测试表:user有id,name,age,sex字段   测试表:goods有id,name,price字段   测试表:ug有id,userid,goodsid字段 select a.name as username, b.name as goodsname from user as a, goods as b, ug as c where a.id=c.userid and c.goodsid=b.id;   但有了视图就不一样了,创建视图other。示例: create view other as select a.name as username, b.name as goodsname from user as a, goods as b, ug as c where a.id=c.userid and c.goodsid=b.id;   创建好视图后,就可以这样获取user的name和goods的name。示例: select * from other;   以上sql语句,就能获取user的name和goods的name了。 作用二:    对数据库重构,却不影响程序的运行。 假如因为某种需求

运维CMDB建设思路

寵の児 提交于 2019-12-04 20:46:09
在我们日常的运维工作中,面对着大量的基础设施和软件服务,该如何管理?这个管理的原则又是什么?粒度该如何控制?我们是否可以建立一个统一的标准模型来管理以上对象?管理过程中,如何降低人力成本?资源对象的生命周期管理如何实现?这么多的疑问,所有的运维人都会想到ITIL中的CMDB。的确CMDB在ITIL中应该算是一个核心概念,以它为基础,才能构建起相关的其他运维活动,因为所有的活动都需要与这个CMDB平台交互。在CMDB构建的过程中,都会碰到如上的问题。 记得我刚刚做运维去建设CMDB的时候,觉得非常的轻松。这源于刚工作时候的一份经历,负责电信资源管理系统的开发,电信的资源非常多,从我们日常开通一个电话,电信分配了哪个端子、哪个端口、哪个交换机,他们之间的级联关系,使用了哪个号码都需要完整的记录下来。后续新的业务办理(比如说移机),也需同步记录这些占有资源的变化,可以说这个系统就是一个非常强大的CMDB的系统。这都源于电信背后一套成型的体系----NGOSS(见下图)。 NGOSS是下一代运营支持系统(New Generation Operations System And Software)的缩写,他从业务流程、系统信息模型构建到技术架构实现再到运行管理都提供了一整套的体系框架,他们分别对应四个不同的子系统----业务视图、系统视图、实现视图、部署视图。每个子系统又有一套指导框架

金蝶面试题汇总

依然范特西╮ 提交于 2019-12-04 18:40:33
第一轮 技术面(大概50分钟左右) 1.对金蝶公司的认识 金蝶国际软件集团有限公司是全球领先的在线管理及电子商务服务商。金蝶以引领管理模式进步、推动电子商务发展、帮助顾客成功为使命,为全球范围内超过60万家企业和政府组织成功提供了管理咨询和信息化服务。 2.java方面 (1)什么是对象 万物皆对象,一个实际上存在的东西,就是一个对象。 (2)为什么要使用继承 通过继承实现代码复用。java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类,被继承的类成为父类。 子类不能继承父类中访问权限为private的成员变量和方法。子类可以 重写 父类的方法,及命名与父类同名的成员变量。但Java不支持多重继承,即一个类从多个超生类派生的能力。 (3)接口有什么作用,举一个实例说明如何申明接口和方法(单立模式) 接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。 比如组装计算机的例子:显卡和主板 (4)重载和重写有什么区别 重载是: 当多个方法具有 相同的名字 而含有 不同的参数 时产生,那么对参数不同的调用,实际调用不同的方法,也可以理解为实际上有两个方法,名字同,参数不同! 重写: 也就是覆盖!通常是发生在继承关系时,重写父类莫非同名方法。

MVC模式和MVVM模式简单理解

China☆狼群 提交于 2019-12-04 18:00:19
相信这是两个耳熟能详的词了,MVC广泛的用到了java的各种框架当中,比如Struts2, SpringMVC等,作为B/S架构开发,MVS模式也是我们必须掌握的。 mvc一步一步演化之后有了现在的MVVM模式,先从怎么出现MVC模式开始,也是前端的进化史。 一、前端演化 在上个世纪的1989年,欧洲核子研究中心的物理学家Tim Berners-Lee发明了超文本标记语言(HyperText Markup Language),简称HTML,并在1993年成为互联网草案。从此,互联网开始迅速商业化,诞生了一大批商业网站。 最早的网页都是完全的静态的,当浏览器请求服务器时,web服务器将固定的写死的HTML文件直接返回给浏览器显示 如果要争对不同的用户显示不同的页面,服务器不可能将成千上万个静态资源全部存放,所以服务器就需要争对不同的用户,动态生成不同的html文件。一个最直接的想法就是利用C、C++这些编程语言,直接向浏览器返回拼接后的字符串,这种技术被称为CGI:Common Gateway Interface。 很显然,一些复杂的网页需求以及不能够通过拼接这种方式来实现了,人们又发现了大多数重复的HTML代码块,是不变的,变化的只有局部的和用户相关的数据,于是出现了动态HTML的方式 :ASP(微软)、JSP(SUN)、PHP(开源社区) 当然这还不能直接说是动态HTML