数据库视图

drf解析模块,异常模块,响应模块,序列化模块

一世执手 提交于 2019-12-01 10:15:31
复习 """ 1、接口:url+请求参数+响应参数 Postman发送接口请求的工具 method: GET url: https://api.map.baidu.com/place/v2/search params: ak: 6E823f587c95f0148c19993539b99295 region: 上海 query: 肯德基 output: json 2、restful接口规范 https://api.baidu.com/v1/books?ordering=-price&limit=3 get|post|put|patch|delete { 'status': 0, 'msg': 'ok', 'results': [ { 'title': '西游记', 'img': 'https://api.baidu.com/media/xyj.png' } ] } 3、基于规范下原生django接口 api/books/ views.Book.as_view() api/books/(?P<pk>.*)/ views.Book.as_view() class Book(View): def get(self, request, *args, **kwargs): pk = kwagrs.get('pk') if pk: # 单查 else: # 群查 def post(self,

MySQL 视图(合并多表数据)引发的严重性能问题

最后都变了- 提交于 2019-12-01 10:04:27
问题背景: 一、客户环境连续多次出现性能问题,系统登入异常,数据库CPU告警。 处理过程: 1>协助排查数据库性能问题时发现如下两个较频繁的SQL导致严重的性能问题(均使用了视图合并多表数据): 1. SELECT nodename FROM view_name1 WHERE id = xxx; 2. SELECT a.id rid,accounttype,belongto,resourceId,belongtoshow FROM view_name2 a LEFT JOIN tablename1 b ON a. col1= b.col1 WHERE a.col1> 0 ; 2> 上面两个SQL使用到了视图(视图通过union all合并了两张表的数据)。下面以t001和t002为例分别给出直接查询原表和使用视图查询的执行计划对比 (其中t001和t002表中id列均有索引):直接查询原表后对结果进行合并: 3>通过视图进行查询: create view t_view as select * from t001 union all select * from t002 ​ 4> 对比执行计划可以发现,使用视图进行数据union all会导致索引失效,使用了全表扫描的方式进行数据检索,在并发高的情况下, 占用较多的磁盘IO,严重消耗数据库的CPU和IO资源,影响到整体的数据库性能

探索SQL Server元数据(二)

為{幸葍}努か 提交于 2019-12-01 07:57:24
背景   上一篇中,我介绍了SQL Server 允许访问数据库的元数据,为什么有元数据,如何使用元数据。这一篇中我会介绍如何进一步找到各种有价值的信息。以触发器为例,因为它们往往一起很多问题。 那么如何找到触发器的数据?   以sys.system_views is表开始。让我们查询出数据库中使用触发器的信息。可以告知你当前SQL Server版本中有什么触发器。 SELECT schema_name(schema_ID)+'.'+ name FROM sys.system_views WHERE name LIKE '%trigger%' ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ---------------------------------------- sys.dm_exec_trigger_stats sys.server_trigger_events sys.server_triggers sys.trigger_event_types sys.trigger_events sys.triggers (6 row(s) affected)   其中sys.triggers看起来信息很多,它又包含什么列?下面这个查询很容易查到: SELECT Thecol.name+ ' '+ Type_name(TheCol

SpringMVC框架之第二篇

安稳与你 提交于 2019-12-01 07:19:48
6.参数绑定(重点) Springmvc作为表现层框架,是连接页面和service层的桥梁,它负责所有请求的中转。怎么从请求中接收参数是重点,这也体现了我们刚开始说的Springmvc的第一个作用:“接收请求中的参数”。 接收的参数具体有哪些类型呢?6.1~6.5是绝大部分参数绑定的类型,还有两种第二天课程讲。 6.1.简述参数绑定的类型 1.默认支持的参数类型:HttpServletRequest,HttpServletResponse,HttpSession,Model 2.简单类型:String,long,double,boolean,Integer, Long等 3.POJO类型 4.POJO的包装类型-QueryVo 5.自定义转换器Converter:适合参数在传入方法前做事前加工,比如不能自动完成的类型转换,去空格等。 6.2.需求 前面我们做完了商品列表画面的展示,下面继续做修改页面和保存修改。 【修改页面】:在列表页面点击一条数据的【修改】,根据id查询这条数据的详细信息,然后显示在修改页面 【保存修改】:在修改页面修改信息,然后点【保存】,把信息存到数据库,保存成功迁移到success页面。(正常保存完应该返回列表页面,但我们先做的简单一点,就暂时迁移到success页面。) 下面我们就利用这个修改的业务需求来逐个演示各种参数绑定方法。 6.3

Django 入门

五迷三道 提交于 2019-12-01 07:09:53
ref: Django过程整理 实验楼Django基础教程 安装 sudo pip3 install Django django-admin startproject mysite cd mysite python3 manage.py runserver # 此时在浏览器输入网址http://127.0.0.1:8000/即可访问默认搭建的服务器 编写页面请求处理代码 # 创建lib目录 python3 manage.py startapp lib 在libs编写view视图代码,编辑urls.py映射到URL 向 mysite/mysite/urls.py 告知使用应用 lib 的视图。 运行服务器并在输入网址http://127.0.0.1:8000/lib/即可访问 模型 Model 模型是真实数据的简明描述。它包含了存储的数据所必要的字段和行为 settings.py配置数据库 -- class Book(models.Model) 创建模型 -- 在settings.py 的 INSTALLED_APPS 数组添加路径 python3 manage.py makemigrations lib 激活模型 -- 使用API即调用自己创建的类Book 模板 Template: 是一个文本,用于分离文档的表现形式和内容 创建一个 templates 目录 --> 新建模板文件

django初识

谁说我不能喝 提交于 2019-12-01 07:08:30
目录 定义一个url和函数的对应关系 environ返回的是一个字典 空行 模板渲染 模板就是html页面 渲染就是字符串替换 传入一个字符串 向浏览器返回一个页面 匹配出来的所有数据都是字符串 有名分组参数 xx=2019 oo=9 关键字传参 有名分组参数 xx=2019 oo=9 关键字传参 (要一一对应) 匹配的时候,返回对应的匹配的内容, articles是返回路径 两个参数进行 返回的都是字符串 模板渲染 模板就是html页面 渲染就是字符串替换 home.html页面 views视图.py (render有第三个参数是html传参使用) 用法 redirect(路径) 示例:redirect('/index/') django django初识 django的本质就是基于socket通信 一。127.0.0.1 本地回环地址 后面:8001是端口号 /ppt是根目录下的ppt子网页 二。/当前网站的客户端(根目录) 例如: 127.0.0.1/#默认80可以不写 web框架的功能; 1.使用socket收发信息 2.根据不同路径返回不同的内容 返回动态的数据(字符串的替换 模板的渲染) web框架的几个开源版本 low版web框架 1 import socket 2 server=socket.socket() 3 ​ 4 server.bind(('127.0.0

django初识1

蓝咒 提交于 2019-12-01 07:08:28
django django初识 django的本质就是基于socket通信 一。127.0.0.1 本地回环地址 后面:8001是端口号 /ppt是根目录下的ppt子网页 二。/当前网站的客户端(根目录) 例如: 127.0.0.1/#默认80可以不写 web框架的功能; 1.使用socket收发信息 2.根据不同路径返回不同的内容 3. 返回动态的数据(字符串的替换 模板的渲染) web框架的几个开源版本 low版web框架 import socket server=socket.socket() server.bind(('127.0.0.1',8001)) server.listen() while 1: conn,addr=server.accept() from_brower_msg=conn.recv(1024) path=from_brower_msg.decode('utf-8').split(' ')[1]#对收到消息编码转换成字符串,切割成列表【0】是方法【1】是对应的页面 #GET / HTTP/1.1 #/是本页面的主页面 /后面的home page什么的都是对应的子页面 print(path) conn.send(b'http/1.1 200 ok\r\n\r\n') if path=='/':#读取文件都用rb with open("04test

django学习-管理界面、视图

北慕城南 提交于 2019-12-01 07:01:24
django管理界面 设计背景 为你的员工或客户生成一个用户添加,修改和删除内容的后台是一项缺乏创造性和乏味的工作。因此,django全自动地根据模型创建后台界面。 django产生于一个公众页面和内容发布者页面完全分离的新闻类站点的开发过程中。 站点管理人员使用管理系统来添加新闻、时间和体育时讯等,这些添加的内容被显示在公共页面上。django通过为站点管理人员创建统一的内容编辑界面解决了这个问题。 管理界面不是为了网站的访问者,而是为了管理者准备的。 创建一个管理员账号 首先,我们得创建一个能登录管理页面的用户。请运行下面的命令: py -3 manage.py createsuperuser D:\django\mysite>py -3 manage.py createsuperuser #输入用户名 Username (leave blank to use 'lenovo'): admin #输入邮箱 Email address: admin@example.com #输入密码 Password: Password (again): The password is too similar to the username. This password is too short. It must contain at least 8 characters. This

6-1 视图

ぐ巨炮叔叔 提交于 2019-12-01 06:55:46
一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 | |

MySQL 视图

ε祈祈猫儿з 提交于 2019-12-01 06:16:17
一 、视图的类型 MERGE   将视图的sql语句和引用视图的sql语句合并在一起,最后一起执行。   2.TEMPTABLE   将视图的结果集存放在临时表中,每次执行时从临时表中操作。   3.UNDEFINED   默认的视图类型,DBMS倾向于选择而不是必定选择MERGE,因为MERGE的效率更高,更重要的是临时表视图不能更新。   所以,这里推荐使用MERGE算法类型视图。 二、视图的特性 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变)。 可以跟基本表一样,进行增删改查操作(ps:增删改操作有条件限制)。 三、视图的作用 方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性; 更加安全,数据库授权命令不能限定到特定行和特定列,但是通过合理创建视图,可以把权限限定到行列级别 参考资料: Mysql视图使用总结 MySQL 视图 来源: https://www.cnblogs.com/songsongblue/p/11664424.html