序列化

DRF之简介以及序列化操作

空扰寡人 提交于 2020-02-13 06:08:00
1. Web应用模式. 在开发Web应用中,有两种应用模式: 前后端不分离 2.前后端分离 2. api接口 为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。 目前市面上大部分公司开发人员使用的接口服务架构主要有:restful、rpc。 rpc: 翻译成中文:远程过程调用[远程服务调用]. http://www.lufei.com/api post请求 action=get_all_student&params=301&sex=1 接口多了,对应函数名和参数就多了,前端在请求api接口时,就会比较难找.容易出现重复的接口 restful: 翻译成中文: 资源状态转换. 把后端所有的数据/文件都看成资源.那么接口请求数据,本质上来说就是对资源的操作了. web项目中操作资源,无非就是增删查改.所以要求在地址栏中声明要操作的资源是什么,然后通过http请求动词来说明对资源进行哪一种操作.   POST http://www.lufei.com/api/students/ 添加数据   GET http://www.lufei.com/api/students/ 获取所有学生 3. RESTful API规范 REST全称是Representational State

第 6 章 Spark 内存管理

北城余情 提交于 2020-02-12 21:17:41
上篇: 第 5 章 Spark Shuffle解析 Spark 内存管理 在执行Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Executor 进程间协调任务的调度,后者负责在工作节点上执行具体的计算任务,并将结果返回给 Driver,同时为需要持久化的 RDD 提供存储功能。由于 Driver 的内存管理相对来说较为简单,本节主要对 Executor 的内存管理进行分析,下文中的 Spark 内存均特指 Executor 的内存。 1、堆内和堆外内存规划 作为一个 JVM 进程, Executor 的内存管理建立在 JVM 的内存管理之上,Spark 对 JVM 的堆内(On-heap)空间进行了更为详细的分配,以充分利用内存。同时,Spark 引入了堆外(Off-heap)内存,使之可以直接在工作节点的系统内存中开辟空间,进一步优化了内存的使用 。 堆内内存受到JVM统一管理,堆外内存是直接向操作系统进行内存的申请和释放。 堆内内存 堆内内存的大小,由 Spark 应用程序启动时的 –executor-memory 或 spark.executor.memory 参数配置。Executor

攻防世界(高手进阶区)——unserialize3

好久不见. 提交于 2020-02-12 15:31:57
题目可以知道是关于PHP序列化的问题。 class xctf { //定义类xctf public $flag = '111' ; //flag赋值为111 public function __wakeup ( ) { //关于魔术变量_wakeup() exit ( 'bad requests' ) ; } ? code = 序列化后的字符串绕过_wakeup(): _wakeup()执行漏洞:一个字符串或对象被序列化后,如果其属性被修改,则不会执行_wakeup()函数,这是一个绕过点。 改变序列化后的属性的个数: <? class xctf { public $flag = '111' ; } $a = new xctf ( ) ; echo serialize ( $a ) ; ?> 将源代码的"?code="加上O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;} 添加到url内; 关于PHP反序列化漏洞可以参考: https://www.jianshu.com/p/1d2c65601d2a 来源: CSDN 作者: LEO__Z 链接: https://blog.csdn.net/zouchengzhi1021/article/details/104277188

Hadoop序列化

a 夏天 提交于 2020-02-11 22:56:59
一.为什么要序列化与反序列化 保证各种类型的数据在内存与磁盘,进程与进程间正确的识别。 二.Hadoop为什么要自定义序列化接口 因为大数据往往传输的数据量巨大,而且java序列化完整而且臃肿。所以为了减少资源的占用。hadoop根据java序列化精简了适用于大数据的序列化框架。 三.已经实现了的序列化的类型 四.自定义对象序列化 必须有空参构造器,反射要调用。 实现Writable接口并且重写write和readFields方法。 write什么时候调用:map阶段由内存向磁盘上写时。 readFields什么时候调用:reduce阶段由map的磁盘向reduce内存中读取的时。 重写toString 最终文件中输出的形式。 来源: CSDN 作者: 梁小玮200 链接: https://blog.csdn.net/LIANGFANGWEI/article/details/104268680

MapReduce的介绍和使用

一曲冷凌霜 提交于 2020-02-11 16:37:23
1. MapReduce介绍 1.1 MapReduce的基本思想 MapReduce思想在生活中处处可见。或多或少都曾接触过这种思想。MapReduce的思想核心是“ 分而治之 ”,适用于大量复杂的任务处理场景(大规模数据处理场景)。 MapReduce分为Map和Reduce两个阶段, Map负责“分” ,即 把复杂的任务分解为若干个“简单的任务”来并行处理,这些小任务可以并行计算,彼此间几乎没有依赖关系 。 Reduce负责“合” ,即 对map阶段的结果进行全局汇总 。 MapReduce运行在yarn集群 下图用介绍了类似MapReduce思想的一个实现过程 在实际的MapReduce执行过程中,可能有多个Reduce 1.2 MapReduce的设计 MapReduce是一个分布式运算程序的编程框架,核心功能是 将 用户编写的业务逻辑代码 和自带默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上 。 MapReduce设计并提供了 统一的计算框架 ,为程序员隐藏了绝大多数系统层面的处理细节。 为程序员提供一个抽象和高层的编程接口和框架。程序员仅需要关心其应用层的具体计算问题,仅需编写少量的处理应用本身计算问题的程序代码。如何具体完成这个并行计算任务所相关的诸多系统层细节被隐藏起来,交给计算框架去处理 :

rest framework-序列化-长期维护

扶醉桌前 提交于 2020-02-11 07:22:59
通过一个小项目来研究 ############### models.py ############### from django.db import models class Publish(models.Model): name=models.CharField(max_length=32) email=models.EmailField() def __str__(self): return self.name class Author(models.Model): name=models.CharField(max_length=32) age=models.IntegerField() def __str__(self): return self.name class Book(models.Model): title=models.CharField(max_length=32) price=models.IntegerField() pub_date=models.DateField() publish=models.ForeignKey("Publish") authors=models.ManyToManyField("Author") def __str__(self): return self.title class User(models.Model):

java常用第三方类库

故事扮演 提交于 2020-02-10 00:03:39
Guava:来自Google的常用类库 Apache Commons:来自Apache的常用类库 Mockito:主要用于单元测试的mock DBUnit:测试中管理数据库测试数据 Rest Assured:用于Rest API测试 Jackson 2:Json数据的序列化和反序列化 jjwt:Jwt token认证 Lombok:自动生成常见Java代码,比如equals()方法,getter和setter等; Feign:声明式Rest客户端 Tika:用于准确检测文件类型 itext:生成Pdf文件等 zxing:生成二维码 Xstream:比Jaxb更轻量级的XML处理库 ———————————————— 版权声明:本文为CSDN博主「清欢ysy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接: https://blog.csdn.net/qq_33840251/article/details/90438979 来源: https://www.cnblogs.com/yjchen/p/12289236.html

二叉树的一些基本操作

非 Y 不嫁゛ 提交于 2020-02-09 17:14:18
数据结构的一些知识很久没碰了,忘得差不多了都,来回顾总结一下,本篇先写一下二叉树相关的一些操作。 二叉树定义 struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 二叉树的创建 通过输入先序二叉树序列创建二叉树,用'#'字符代表空节点。 //通过先序输入创建二叉树 TreeNode* CreateTreeByInput() { char ch; std::cin >> ch; if (ch == '#') return NULL;//输入#表示创建结束 TreeNode* root = new TreeNode(ch); root->left = CreateTreeByInput(); root->right = CreateTreeByInput(); return root; } 二叉树的遍历 先序、中序、后序三种基本遍历方式。 //先序遍历 void PreOrder(TreeNode* root) { if (root == NULL)return; std::cout << (char)root->val << ' '; PreOrder(root->left); PreOrder(root-

序列化和反序列化

时间秒杀一切 提交于 2020-02-09 10:19:29
序列化流 序列化 java.io.ObjectOutputStream类,将java对象的原始数据类型写入到文件,实现对对象的持久存储,通俗来说,就是 把对象以流的方式写入到文件中叫序列化. 构造方法: public ObjectOutputStream(OutputStream out) , 其中,参数为字节输出流. 序列化流特有的成员方法: void writeObject(Object obj) : 将指定的对象写入到流中 使用步骤: 创建一个ObjectOutputStream对象,在构造方法中传递字节输出流. 创建要写入到文件的对象,但是, 注意这个对象所在的类一定要实现 Serializable 序列化接口,不然会报错 没有序列化异常 . 用ObjectOutputStream对象中的writeObject方法把对象写入到文件中. 释放资源 案例(将person对象存放到项目目录下的指定文件中): public class ObjectOutputStreamDemo1{ public static void main(String[] args) throws IOException { //这里构造函数中的true是为了多次运行能把对象数据依次添加到上一条数据的后面而不是覆盖之前的数据 ObjectOutputStream outputStream = new

Pyhton学习——Day22

喜你入骨 提交于 2020-02-09 01:03:33
#有缩进的代码表示局部作用域的代码#if_name_ =='_main_' # while True#先引入一个os模块import os,sys,time,json# print(os.path.dirname())#BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(_file_)))# sys.path.append(BASE_DIR) 不写死找到相对路径################################################################################################################## print(os.getcwd())# 获取当前工作目录,即当前python脚本工作的目录路径-->F:\Python_Leaning\每日学习打卡# os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径# os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd# os.curdir 返回当前目录: ('.')# os.pardir 获取当前目录的父目录字符串名:('..')# os.makedirs('dirname1/dirname2') 可生成多层递归目录# os