数据库视图

drf04 drf视图类

只愿长相守 提交于 2019-11-27 05:35:10
REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写。 1、2个视图基类 1.1、 APIView rest_framework.views.APIView APIView 是REST framework提供的所有视图的基类,继承自Django的 View 父类。 APIView 与 View 的不同之处在于: 传入到视图方法中的是REST framework的 Request 对象,而不是Django的 HttpRequeset 对象; 视图方法可以返回REST framework的 Response 对象,视图会为响应数据设置(render)符合前端要求的格式; 任何 APIException 异常都会被捕获到,并且处理成合适的响应信息; 在进行dispatch()分发前,会对请求进行身份认证、权限检查、流量控制。 支持定义的类属性 authentication_classes 列表或元祖,身份认证类 permissoin_classes 列表或元祖,权限检查类 throttle_classes 列表或元祖,流量控制类 在 APIView 中仍以常规的类视图定义方法来实现get() 、post() 或者其他请求方式的方法。 举例: from rest_framework.views import APIViewfrom rest_framework

视图类、视图家族、工具视图等

僤鯓⒐⒋嵵緔 提交于 2019-11-27 05:34:55
视图类传递参数给序列化类 # 1)在视图类中实例化序列化对象时,可以设置context内容 # 2)在序列化类中的局部钩子、全局钩子、create、update方法中,都可以用self.context访问视图类传递过来的内容 # 需求: # 1) 在视图类中,可以通过request得到登陆用户request.user # 2) 在序列化类中,要完成数据库数据的校验与入库操作,可能会需要知道当前的登陆用户,但序列化类无法访问request # 3) 在视图类中实例化序列化对象时,将request对象传递进去 视图层:views.py class Book(APIView): def post(self, request, *args, **kwargs): book_ser = serializers.BookModelSerializer(data=request_data,context={'request':request}) book_ser.is_valid(raise_exception=True) book_result = book_ser.save() return Response({ 'status': 0, 'msg': 'ok', 'results': serializers.BookModelSerializer(book_result).data })

视图类、视图家族、工具视图等

丶灬走出姿态 提交于 2019-11-27 05:34:31
视图类传递参数给序列化类 # 1)在视图类中实例化序列化对象时,可以设置context内容 # 2)在序列化类中的局部钩子、全局钩子、create、update方法中,都可以用self.context访问视图类传递过来的内容 # 需求: # 1) 在视图类中,可以通过request得到登陆用户request.user # 2) 在序列化类中,要完成数据库数据的校验与入库操作,可能会需要知道当前的登陆用户,但序列化类无法访问request # 3) 在视图类中实例化序列化对象时,将request对象传递进去 视图层:views.py class Book(APIView): def post(self, request, *args, **kwargs): book_ser = serializers.BookModelSerializer(data=request_data,context={'request':request}) book_ser.is_valid(raise_exception=True) book_result = book_ser.save() return Response({ 'status': 0, 'msg': 'ok', 'results': serializers.BookModelSerializer(book_result).data })

mysql--视图(view)

喜夏-厌秋 提交于 2019-11-27 05:30:36
原创 大孩子 我们都是小青蛙 2018-07-02 社会我蛙哥,人狠话也多 视图 我们之前唠叨过连接表的查询,比方说下边这个: image_1chb82o2b15c81t4416291a52cffp.png-123.5kB 我们查询出了一些男学生的基本信息和成绩信息,如果下次还想得到这些信息,我们就不得不把这个又臭又长的查询语句再敲一遍,所以MySQL提供了视图(英文名VIEW)来帮助我们用很容易的方式去复用这些查询语句。 创建视图 一个视图可以理解为一个查询语句的别名,创建视图的语句如下: CREATE VIEW 视图名 AS 查询语句 比如我们想根据上边那个又臭又长的查询语句来创建一个视图可以这么写: mysql> CREATE VIEW male_student_info AS SELECT s1.number, s1.name , s1.major, s2.subject, s2.score FROM student_info AS s1 INNER JOIN student_score AS s2 WHERE s1.number = s2.number AND s1.sex = ‘男’; Query OK, 0 rows affected (0.02 sec) mysql> 这样,这个名称为male_student_info的视图就代表了那一串又臭又长的查询语句了。

SAP有个项目管理平台秘密武器叫ARIS

故事扮演 提交于 2019-11-27 04:07:26
ARIS 是 Architecture of Integrated Information Systems (集成信息系统结构)的简称,它是由德国 IDS 总裁和创始人 Scheer 教授首先提出的。    从较深层的含义上,我们可以从两个方面来理解 ARIS 。一方面, ARIS 是一套完整的管理理论,是 " 国际上独一无二的著名方法,用于优化业务流程和应用 系统的实现 " ;另一方面, ARIS 又是一套软件,或者说是一种工具( Tool ),它为用户提供从企业建模到应用系统设计的全程辅助。 ARIS 的理论精粹集 中在五个视图上,可以 "HOBE 房型构架 " 生动反映。 ARIS 理论的 HOBE 结构 ● 功能视图 (Function View)    ARIS 将输入转变到输出的流程被划归到功能视图。 ● 组织视图 (Organization View)   组织视图建立实体单元的层次结构。组织单元创建的目的是将执行同一工作目标的单元和设备归成一组。 ● 数据视图 (Data View)   数据视图包括数据处理的环境和被消息触发的功能以及引起触发的功能。 ● 输出视图 (Output View)   输出视图包括所有的物理的和非物理的输入和输出,也包括资金流。 ● 控制视图 (Control View)   控制视图记录上述四个视图间的相互关系以及整个业务流程

用户注册(一)之注册页面以及图形验证码

时光怂恿深爱的人放手 提交于 2019-11-27 02:59:17
一、用户模型设计(用户表的设计)   1. 用户表字段分析     1)用户名     2)密码     3)手机号     4)邮箱     5)邮箱是否有效   2. 用户模型设计     django设计模型开发效率极高,内置了许多功能,包括权限验证等等,也有自定义的User模型。     因此我们需要继承已经写好的抽象模型类AbstractBaseUser,它有已经封装好的各种方法,约定俗成的凡是抽象模型类起名都以Abstract来开头,但是判断该模型类是否是抽象模型类的依据是,类中需要定义 class Meta: abstract = True     这才证明它是一个抽象模型类。               在我们继承了django自带的用户模型类之后,我们使用时进行扩充字段即可。   3. 在User这个app中的models.py页面来填写我们的需要的User模型类     1) 继承抽象模型类 ,添加用户新字段,重写管理器,方便我们创建用户,并制定我们的User模型使用我们自定义的管理器 # user/models.py 文件from django.db import models from django.contrib.auth.models import AbstractUser, UserManager as _UserManager # Create

【Django】视图系统_

孤人 提交于 2019-11-27 02:57:19
目录 FBV 与 CBV 给视图加装饰器 使用装饰器装饰CBV 关于dispatch()方法 Request对象 与 Response对象 request对象 response对象 原文: http://106.13.73.98/__/36/ @ *** 一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了,可以说“没什么神奇的地方”。 为了将代码存放位置统一,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。 一个简单的视图: # 以HTML文档的形式返回当前日期和时间 from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = '<html><body>It is now %s.</body></html>' % now return HttpResponse(now)

数据库设计原则

我与影子孤独终老i 提交于 2019-11-27 01:39:52
1. 原始单据与实体之间的关系   可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。 这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。   〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。        这就是“一张原始单证对应多个实体”的典型例子。 2. 主键与外键   一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键   (因为它无子孙), 但必须要有外键(因为它有父亲)。   主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专   家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核   心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。 3. 基本表的性质   基本表与中间表、临时表不同,因为它具有如下四个特性:    (1) 原子性。基本表中的字段是不可再分解的。    (2) 原始性。基本表中的记录是原始数据(基础数据

高性能MySQL之事物

北战南征 提交于 2019-11-27 01:21:46
背景 当你手中抓住一件东西不放时,你只能拥有一件东西,如果你肯放手,你就有机会选择更多。与其在别人的生活里跑龙套,不如精彩做自己。人无所舍,必无所成。跌倒了,失去了,不要紧,爬起来继续风雨兼程,且歌且行。 一、概念 事务到底是什么东西呢?想必大家学习的时候也是对事务的概念很模糊的。接下来通过一个经典例子讲解事务。 银行在两个账户之间转账,从A账户转入B账户1000元,系统先减少A账户的1000元,然后再为B账号增加1000元。如果全部执行成功,数据库处于一致性;如果仅执行完A账户金额的修改,而没有增加B账户的金额,则数据库就处于不一致状态,这时就需要取消前面的操作。这过程中会有一系列的操作,比如余额查询,余额做加减法,更新余额等,这些操作必须保证是一个整体执行,要么全部成功,要么全部失败,不能让A账户钱扣了,但是中途某些操作失败了,导致B账户更新余额失败。这样用户就不乐意了,银行这不是坑我吗?因此简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。你现在知道,MySQL是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如MySQL原生的MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。 接下来会以InnoDB为例,抽丝剥茧MySQL在事务支持方面的特定实现。 二、隔离性与隔离级别

【Django】视图系统 -- 2019-08-11 19:36:29

女生的网名这么多〃 提交于 2019-11-27 00:16:14
目录 FBV 与 CBV 给视图加装饰器 使用装饰器装饰CBV 关于dispatch()方法 Request对象 与 Response对象 request对象 response对象 原文: http://106.13.73.98/__/36/ @ *** 一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了,可以说“没什么神奇的地方”。 为了将代码存放位置统一,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。 一个简单的视图: # 以HTML文档的形式返回当前日期和时间 from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = '<html><body>It is now %s.</body></html>' % now return HttpResponse(now)