自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Handoking的博客【学无止境】

在漫漫的人生长河中,当前的磨难只不过是一段增加情调的小插曲,所以坚持下去

  • 博客(132)
  • 资源 (14)
  • 收藏
  • 关注

原创 单点登陆SSO(二)认证中心登陆、验证

单点登陆单点登陆github单点登陆的原理客户端一拦截器认证中心代码单点登陆githubgithub:https://github.com/Handoking/Single-Sign-on单点登陆的原理客户端一拦截器认证中心代码这里并没有使用数据库,仅仅是使用了数据结构保存了session。同时只是为了实现两个客户端的登陆,所以直接验证了用户名和密码。数据结构类UserDB.clas...

2020-01-02 20:04:02 269

原创 单点登陆SSO(一)原理、多客户端登陆

单点登陆单点登陆项目GitHub单点登陆的原理客户端一拦截器感谢coding老师的课程,让我能很好的学习,掌握单点登陆的相关知识,所有的代码都来自或者修改coding老师的视频,简单总结一下单点登陆项目GitHubgithub:https://github.com/Handoking/Single-Sign-on单点登陆的原理单点登陆最主要保证的就是一处登陆,处处登陆,也就是我们登陆t...

2020-01-02 19:28:58 496

原创 Jackson注解的使用实例.摘记

目录jsonIncludejsonPropertyJsonIgnoreJsonIgnorePropertiesJsonIgnoreTypejsonInclude实体类/属性使用的注解,用于忽略NULL的属性,空的属性或者NULL的类.例如创建一个银行账户类,序列化时如果id为空,那么该属性将不会被序列化。为什么使用NON_NULL:比如读取数据库数据,空值如果序列化传输的,那么会出现空值的...

2019-10-15 11:38:06 89

原创 IP协议也能够进行数据的无连接不可靠传输服务,为什么还需要UDP协议

文章目录1.通过ip可以完成主机到目的主机数据的无连接不可靠传输。但是事实上,两台主机在网络中通信实际上是两台主机的应用进程间的通信。因此需要端口号来指明数据交付的应用进程。ip所在的网络层完成主机对主机之间的逻辑通信,而UDP所在的传输层为应用进程提供了端到端的逻辑通信。2.UDP用两个字节来表示端口号,可允许有2^16个端口号,除去常用的端口号,依然有6万多个端口号供用户使用。3.运输层...

2019-09-07 15:24:51 1527

原创 java7局部内部类访问外部变量final,java8不需要将变量设置为final?

导航为什么局部内部类只能访问外部的final变量?为什么java8不需要设置为final?为什么局部内部类只能访问外部的final变量?这里没有写版本号,严谨!!哈哈哈哈哈生命周期不同,当方法执行结束时,局部内部类如果依旧被引用,那么内部类不会死亡,也就意味着局部内部类访问的是一个不存在的变量,显然不合适。而事实上局部内部类不会产生访问以上问题,因为java编译时将局部内部类访问的变量已经拷...

2019-09-06 10:51:06 309

原创 mysql查询优化

优化策略优化的方向1.减少select *的操作,在查询时常用limit限制返回的数据量。2.经常重复查询的数据,存入缓存或者建立哈希索引/或者mysql建立自适应哈希。3.复杂查询语句,使用多条简单查询(并不是所有的多条查询都比复杂查询效果好)。4.关联查询拆解成多条查询优化的方向查询为什么会慢?除去网络延迟,CPU计算等因素,时间主要消耗在查询执行阶段,比如说I/O阻塞,锁等待导致执行事件...

2019-08-26 16:09:43 99

原创 2020网易雷火测试开发面经

开门见山!!!!!一面聊游戏谈测试点。1.你最喜欢的游戏?竞技类还是网游?手游是卡牌类还是竞技类。2.既然你说你是lol资深玩家,你最喜欢或者说玩的拿手的有哪些英雄3.说说小炮吧,如果小炮刚做出来,你是测开工程师,那么你会从几方面来测试4.白盒测试和黑盒测试的区别5.你觉得lol的匹配模式是遵循什么优先级的,除了段位外。6.塞拉斯bug你了解吗,谈了一堆。7.。。。。全是lol。...

2019-08-22 09:40:04 1141

原创 TCP可靠性传输是怎么是实现的?

《图解TCP/IP》这本书中提到“TCP通过校验和,序列号,确认应答,重发控制,连接管理以及窗口控制等机制实现可靠性传输。”序列号、确认应答、重发控制在TCP三次握手(连接管理)和四次挥手中都有体现,这几个机制在很多博文中写的很不错,我也学习总结过一篇,没有创新,一直是知识的搬运工。现在我更关心的是窗口控制,流控制,拥塞控制这几个机制。首先我会问连接管理,重发控制,确认应答等机制还不能保证可靠性...

2019-08-17 22:10:35 405

原创 Redis主从复制

导航一般情况下的主从复制-增量同步快照同步一般情况下的主从复制-增量同步主节点会将改变数据的指令记录保存在buffer,然后异步复制(异步的同步数据)到从节点,从节点一边根据指令记录同步数据,同时还会返回正在执行的命令的偏移量。内存中的buffer是一个定长的环形数组,大小有限,当buffer满了的时候,新写入的指令记录会覆盖之前的记录。如果主节点和从节点的网络出问题,从节点未收到的指令可能会...

2019-07-29 10:57:22 81

原创 Redis为什么先执行指令,再写AOF日志?

为什么这么问因为在常见的数据库中,持久化重做日志一般是先写日志再修改数据库,保证数据/操作不会丢失。所以看到redis的AOF日志的机制后,很困惑,网上连这个问题的提问都没有,书上也是一笔带过。要弄明白这个问题,首先要搞懂Redis写AOF日志的流程。写AOF日志首先,AOF日志中写入的是收到的操作命令记录。redis包含丰富的数据类型,对set数据执行Rpush显然会发生错误,因此命令写...

2019-07-27 16:31:43 1510 4

原创 Redis和数据库缓存一致性的分析与可靠的解决方案

导航为什么会产生缓存不一致的情况普遍采取的更新缓存的策略解决删除缓存失败的问题为什么会产生缓存不一致的情况一般更新缓存有下面的几种策略:归根结底:缓存应该是更新还是删除?1.先更新数据库,再更新缓存并发更新数据库或者并发更新缓存时,可能会出现脏数据,并且每次都把没有读到的数据更新到缓存,也太浪费内存了。2.先删除缓存,再更新数据库如果一个线程更新数据,一个线程查询数据。更新数据的线程...

2019-07-25 10:12:58 169

原创 两种方法手写LRU(LinkedHashMap&&map+双链表)

前面注释掉的部分是简单的用LinkedHashMap写的LRU,属于没有技术含量,也不能很好的理解LRU.import java.util.HashMap;/** * @ClassName LRU 借助LinkedHashMap,重写removeEldestEntry,调用LinkedHashMap的size()方法来判断存入的元素个数。 * @Description TODO * @...

2019-07-23 16:36:45 346

原创 自己写Java ArrayList

无需多解释了,有注释。扩容的大小是按照源码中的1.5倍来的,你可以随意。错误之处,请在评论区不吝赐教。/** * @ClassName MyArraylist * @Description TODO * @Author Handoking * @Date 2019/7/17 18:55 **/import java.util.Arrays;import java.util.O...

2019-07-23 16:25:43 138

原创 RabbitMQ必问面试题

导航1.RabbitMQ怎么保证数据可靠性传输?2.RabbitMQ的优点和缺点是什么?3.怎么保证消息队列的高可用性?5.怎么保证消息的顺序?6.如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?7.如果让你自己写一个消息队列,你怎么设计架构?参考大佬的博客,点此跳转1.RabbitMQ怎么保证数据可靠性传输?开启comfirm,...

2019-07-20 17:25:27 304

原创 简单一句话:redis为什么快

基于内存,单线程,多路I/O复用//TODOredis分布式锁的实现

2019-07-18 17:03:55 120

原创 可以口头表达清楚的知识:InnoDB存储引擎体系结构/原理(一)

导航InnoDb的体系结构是怎样的,并分别简单介绍下?后台线程内存数据库缓存池的算法实现你了解吗?InnoDB的关键特性有哪些,能不能分别介绍一下InnoDb的体系结构是怎样的,并分别简单介绍下?包括内存,后台进程,数据文件等。(图片截取自Mysql技术内幕)后台线程Master Thread核心一句话:保证数据的一致性。即异步刷新缓存池中的数据到磁盘。比如刷新脏页到磁盘,合并插入缓...

2019-07-12 21:53:05 213

原创 Redis数据结构详解(一)简单动态字符串,链表,字典

导航1.简单动态字符串(SDS)数据结构SDS的优点2.链表链表结构定义3.字典字典的结构定义字典的rehash操作1.简单动态字符串(SDS)数据结构SDS结构定义struct sdshdr{ //SDS中保存的字符串的长度 int len; //SDS中未使用的空间长度 int free; //保存字符串的字节数组 char buf[];}例如在SDS中存入Redis...

2019-07-02 19:52:10 109

原创 几句话说清楚:TCP三次握手,四次挥手&&SSL四次握手

目录TCP的三次握手TCP四次挥手SSL的四次握手TCP的三次握手第一次:客户端发送建立连接请求。同步序号SYN,1表示连接请求,发送字节流的顺序号seq,假定为x。第二次:服务端应答请求。同步序号依然设置为1,确认号ack为顺序号加1,ACK设置为1表示确认号有效。本次的字节流需要一个顺序号seq,假定为y。第三次:客户端检查确认号是否正确,如果正确,发送确认信息到服务器,至此建立了T...

2019-06-26 21:19:52 527

原创 几句话说清楚:Spring IOC和AOP

目录IOC能看得懂的定义AOP能感受到的定义原理IOC能看得懂的定义IOC控制反转,是一种设计思想,一般情况在程序中我们主动创建依赖对象,这样的类与类之间耦合性比较强,当依赖对象的改变时就需要修改源码。控制反转是将依赖对象的创建和查找的控制权交给容器,只需要修改配置文件就可以实现对依赖对象的修改。依赖注入的思想是通过反射机制实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在...

2019-06-25 11:06:33 149

原创 一句话读完:Spring Bean的生命周期

拜读了很多大佬的博客,分析的都很好,受益匪浅。以下化繁为简,用很简单的几句话描述以下Bean的生命周期。Bean生命周期——构造器或者工厂方法创建Bean实例。——为Bean设置属性和对其他Bean的引用————IOC依赖注入属性,setBeanName设置ID,以及ApplicationContextAware的实现完成对其他Bean的引用——Bean后置处理器(postProcess...

2019-06-24 20:09:46 76

原创 java并发机制底层原理--轻量级锁

目录轻量级锁加锁、解锁过程轻量级锁的优缺点偏向锁只允许一个线程同时访问,主要针对极少竞争的情况,可以减少加锁和释放锁的性能消耗。轻量级锁允许多线程同时访问对象,但是是顺序访问,一个线程拥有锁,其他线程自旋获取锁。轻量级锁加锁、解锁过程线程在执行同步块之前,JVM为当前线程的栈帧中创建存储锁记录的空间。1.首先将头对象中的MarkWord复制到锁记录中,然后线程尝试用CAS将头对象中的Mar...

2019-06-14 21:26:22 229

原创 java并发机制底层实现原理--偏向锁

目录为什么需要偏向锁偏向锁的加锁过程偏向锁的释放过程偏向锁的缺点为什么需要偏向锁在大多数的情况下,锁不仅不存在多线程的竞争,往往是某个线程多次获得锁。为了降低线程获得锁和释放锁带来的性能消耗,因此引入了偏向锁和轻量级锁。偏向锁主要是降低单线程访问时频繁加锁,释放锁的消耗,当前线程一旦获得锁,再无竞争的情况下,那么下次访问代码块相当于几乎零成本的获得锁,不需要维护轻量级锁。偏向锁的加锁过程一...

2019-06-14 16:07:13 178

原创 java面试题与回答(二)

目录1.Arrays.sort 实现原理和 Collections.sort 实现原理1.Arrays.sort 实现原理和 Collections.sort 实现原理Collections.sort底层其实调用的是List.sort,List.sort调用了Arrays.sort。Arrays.sort如下:public static <T> void sort(T[] a,...

2019-06-03 20:43:29 96

原创 java必问面试题(一)

目录1.list和set的区别是什么2.了解CMS嘛,CMS的过程是怎么样的,哪些步骤需要用户线程停顿2.1 CMS的实现算法为什么是标记-清除,而不使用其他的算法,比如标记-整理算法2.2 G1垃圾收集器同样关注降低停顿时间,那为什么G1垃圾回收器的算法实现采用标记-整理。2.3 G1和CMS的区别是什么3.为什么hashMap是线程不安全的?3.1 hashMap在1.7和1.8有什么区别和优...

2019-05-31 21:36:08 147

原创 java8 HashMap put过程 源码分析

public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }很明显是putVal方法来完成的,看看怎么说。 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, ...

2019-05-31 10:15:19 220

原创 java内部比较器和外部比较器

外部比较器,实现comparator,重写compare,以下例子实现包含对象的集合的排序。排序时调用的函数是collections.sort(list,比较器)。import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;/** *...

2019-05-24 16:39:57 970

原创 leetcode153. 寻找旋转排序数组中的最小值(o(logn)和o(n))

题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0//二分法 复杂度o(logn)class Solution ...

2019-05-14 15:59:07 137

原创 leetcode278 第一个错误的版本——二分法

题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错...

2019-05-14 15:16:04 113

原创 leetcode540 有序数组中的单一元素——二分法

题目:给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。class Solution { public int singleN...

2019-05-14 14:12:08 86

原创 Leetcode744 寻找比目标字母大的最小字母——二分法

题目:给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。数组里字母的顺序是循环的。举个例子,如果目标字母target = ‘z’ 并且有序数组为 letters = [‘a’, ‘b’],则答案返回 ‘a’。//用二分法查找,效率极高,1ms ,击败了99.67%用户.class Solution { public ...

2019-05-14 10:19:56 81

原创 LeetCode69求开平方

题目:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。解一:二分法class Solution { public int mySqrt(int x) { if (x <=1 ) { return x; } ...

2019-05-13 21:41:30 192

原创 InnoDB与MyISAM区别

最大的区别应该是事务性。InnoDB支持事务,而MyiSAM不支持事务,因此也没有事务的和隔离级别来保证并发产生的各种问题。没有事务特性在并发的情况下MyiSAM怎么操作?MyiSAM存储引擎支持表锁,写数据排他锁,其他线程无法获得锁。读数据时共享锁,允许线程插入数据。而InnoDB既支持表级锁,同时也支持行级锁。存储空间占用情况MyiSAM设计相对简单,数据以紧密格式存储,支持压缩表,...

2019-05-11 15:30:58 833

原创 索引原理与比较

目录什么是索引为什么需要索引(优点)索引的实现Mysql索引分类和比较B+树索引哈希索引全文索引空间数据索引什么是索引索引是存储引擎快速找到记录的一种数据结构。在mysql中也称为key键。为什么需要索引(优点)索引能加快检索速度,提高查询性能。1.大大减少服务器扫描的数据行数2.避免服务器进行排序和分组,也因此避免了创建临时表3.将随机I/O变成顺序I/O(下面会提到B+树的存储物...

2019-05-11 09:12:01 141

原创 事务和事务的隔离级别原理

目录什么是事务为什么需要事务事务的特性ACID并发带来的数据一致性问题事务的隔离级别的理解四个隔离级别MVCCMVCC实现原理简述Next-key Lock +MCVV 避免幻读什么是事务事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果任何一条SQL语句执行失败,那么所有的语句都执行失败。大家在一条船上,要么都成功,要么都失败。为什么需要事务1.事务的提出就是解决并发情况下数...

2019-05-09 10:42:37 356

原创 简单易懂-线程池

为什么要线程池频繁的创建和销毁线程会降低系统效率,寻求一种线程复用的方式,那么可以使用缓存的策略,也就是使用线程池。简单说就是线程复用,提高效率,节约资源。线程池是怎样的线程池的核心类:ThreadPoolExecutorThreadPoolExecutor、AbstractExecutorService、ExecutorService和ExecutorExecutor:一个顶层接口,在...

2019-05-05 20:15:13 111

原创 多线程创建方式

继承 Thread 类public class MyThread extends Thread{//Thread本质上还是实现了Runnable接口 public void run{ System.out.println("MyThread.run()"); }}MyThread myThread1 = new MyThread();myThread1.start();//sta...

2019-05-05 11:50:30 124

原创 Spring MVC原理1-DispatcherServlet

在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作。在看 DispatcherServlet 类之前,请求处理的大致流程:Tomcat 启动,对 DispatcherServlet 进行实例化,然后调用它的 init() 方法进行初始化,在这个初始化过程中完成了:对 web.xml 中初始化参数的加载;建...

2019-05-05 10:34:22 76

原创 <LeetCode>无重复字符串

题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke...

2019-04-18 19:17:44 179 1

原创 <LeetCode>两数相加(逆序与正序存储)

题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&g...

2019-04-18 10:25:11 517

原创 【LeetCode】两数之和(关于看似简单题的深思)

题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]题解一<暴...

2019-04-17 14:48:31 69

中科院分析系统NLPIR201810月最新版

这个分词的包,完全可以正常使用,中科院的分词确实做的好,加上用户词典和去除停用词后,效果不错,要利用本分词系统具体实现的可以参考我的博文。这个包可以在github上直接下载,就是找到比较繁琐

2018-10-24

中文文本情感倾向分析超级字典包

包括知网情感词典,知网程度副词词典,哈工大情感词典,中科院情感词典,敏感词词典,反动词词典,色情词词典,大连理工情感词汇本体库,台湾大学NTUSD简体中文情感词典等

2018-10-24

中科院NLPIR最新版分词(2018.10)系统加入用户词典和去除停用词的完整代码

在最新版的中科分词系统基础上,进行了改进,加入用户词典和停用词,并进行文件无乱码读写,输出分词结果,效果不错,是情感分析的良好基础。这一部分,我用来写作为硕士论文的数据处理基础。在此分享给各位,欢迎指教

2018-10-24

23篇2014年—2018年6月SCI情感分析论文和优秀的硕博毕业论文

一共23篇关于情感分析的论文。其实不舍得上传,毕竟自己花了好久,各种梯子各种会员才下到了这么多的好论文,几乎涵盖了情感分析的各种研究方法。英文大概有10篇。在于知识分享,如果侵权请联系我随时删除

2018-10-24

【源代码】C++算法(五)一维数组去重(复杂度为n且不新开辟空间)

【源代码】C++算法(五)一维数组去重(复杂度为n且不新开辟空间) https://blog.csdn.net/handoking/article/details/79751939

2018-03-30

【源代码】C++算法(四)队列的基本操作 (用队列实现十进制转换十六进制)

【源代码】C++算法(四)队列的基本操作 (用队列实现十进制转换十六进制)

2018-03-30

【源代码】C++实现严蔚敏数据结构所有算法(三)堆栈的基本操作(VS2017)

【源代码】C++实现严蔚敏数据结构所有算法(三)堆栈(VS2017)

2018-03-30

【源代码】C++实现单链表的基本操作(严蔚敏数据结构)

【源代码】C++实现单链表的基本操作(严蔚敏数据结构)包括基本的插入删除获取长度,清空等操作,还有更重要的单链表合并,连接,多项式运算等。需要说明的是我用的VS2017,低版本的复制粘贴就好

2018-03-20

(源代码)C++实现严蔚敏数据结构所有算法(一)线性表-顺序表 (VS2013)

(源代码)C++实现严蔚敏数据结构所有算法(一)线性表-顺序表 (VS2013)

2018-03-13

ubuntu入门学习笔记

是本人学习ubuntu从开始到熟练的手稿,一步一步码出来的。很适合刚上手linux的朋友学习,欢迎提建议。

2018-01-25

西安电子科技通信原理考研辅导书- 曹丽娜

通信原理研究生考试入学初试试题,2005--2015,包括答案解析。对其他学校考研的学生非常有参考意义。更是一本查看经典试题,经典解法,核心知识点的必备书籍

2017-09-25

西安电子科技通信原理考研资料

基本规律和技巧 第一部分 线性调制 前提: 信道和滤波器都是理想的,幅频特性是常数 1 1 1 1 ,所有 的载波振幅也为 。 、一般情况下,一个基带信号(或低通信号)乘以高频正 弦或余弦载波后,平均功率 减半 ,若再通过单边带滤波器 , 平均功率 又减半 ,这是由于上下边带所携带功率相等的缘 故。 、具有窄带噪声形式(例如单边带调制信号)的已调信号 通过相干解调器后 , 平均功率减为 四分之一 , 这是由于其正

2017-09-25

flask web开发应用实战——Miguel Grinberg

Flask有两个主要依赖:路由、调试和Web服务器网关接口(Web Server Gateway Int WSGI)子系统由 Werkzeug(http://werkzeug.pocoo.org/)提供;模板系统由 Jinja2( jinja.pocoo.org/)提供。Werkzeug和Jinjia2都是由Flask的核心开发者开发而成。

2017-09-25

flask web开发:基于python的web开发应用实战——Miguel Grinberg

Flask有两个主要依赖:路由、调试和Web服务器网关接口(Web Server Gateway Int WSGI)子系统由 Werkzeug(http://werkzeug.pocoo.org/)提供;模板系统由 Jinja2( jinja.pocoo.org/)提供。Werkzeug和Jinjia2都是由Flask的核心开发者开发而成。

2017-09-25

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除