使用 Flask + Flask RESTful 快速搭建 API 服务 简介 Flask 是 Python 社区中开发 Web 应用最火热的框架之一,不同于 Django 陡峭的学习曲线,个人感觉 Flask 非常好上手,且社区生态丰富,有很多成熟的扩展可以拿来直接安装使用。 Flask 框架自身集成了基于 Jinja 的模板语言,使其可以完成前后端的所有开发,但现在大部分的 Web 应用都是前后端分离,所以本文将使用 Flask RESTful 扩展实现一个纯后端的 开发运维 2023-07-13 共饮一杯
Dart Class、mixin、interface三者间关系及异同 Class Dart中一切皆为对象,而每个对象都是一个类的实例,所有的类都继承于Object。 除了普通的构造方法,Dart中的Class还提供了不同用途的构造方法,比如命名构造方法、重定向构造方法、常量构造方法、工厂构造方法,还有初始化参数列表等。 抽象类 抽象类使用abstract关键字定义,是不能被实例化的,通常用来定义接口以及部分实现。 但与其他语言不太一样的地方是,抽象方法也可以定义在非 开发运维 2023-07-13 竹子爱熊猫
Dart如何处理信息的?函数、类与运算符 Dart是如何处理信息的 作为一门真正面向对象的编程语言,Dart将处理信息的过程抽象为了对象,而函数、类与运算符则是抽象中最重要的手段 函数 函数是一段用来独立完成某个功能的代码片段,而Dart中所有类型都是对象类型,函数也不例外,即函数也是对象,它的类型为Function。 void main() { Function check = isEmptyStr; printStr('',check 开发运维 2023-07-13 剑圣无痕
JVM篇: 堆 堆的核心概念 堆针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个 JVM 实例只存在一个堆内存,堆也是 Java 内存管理的核心区域。 Java 堆区在 JVM 启动的时候即被创建,其空间大小也就确定了。是 JVM 管理的最大一块内存空间。 堆内存的大小是可以调节的 《Java 虚拟机规范》规定,堆可以处于物理上不连续的内存空 开发运维 2023-07-13 三掌柜
Dart神奇类型mixin有什么用?如何定义和使用? Dart 中,有一个神奇的类型,叫做 mixin。 它和 class 比较类似,但它没有构造函数。 通过 mixin,可以扩展一个类的属性和功能,使得类具有 Mixin 类的属性和函数 API。 如何定义一个 Mixin? 使用 mixin 关键字来定一个 Mixin 类: mixin Musical { bool canPlayPiano = false; bool canCompose = f 开发运维 2023-07-13 向阳逐梦
Ribbon实战 Ribbon是Netflix开发的客户端负载均衡器,为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种负载均衡策略算法让服务消费者去请求提供者。Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等,也可以实现自定义负载均衡算法。 一、Ribbon的组成 官网首页:github.com/Netflix/rib… ribbon-core:核心的通用性代码 ribbon-e 开发运维 2023-07-13 泡泡
Dart如何搞定异步操作:Future代码加入到事件队列还是微任务队列呢? 一. Dart的异步模型 我们先来搞清楚Dart是如何搞定异步操作的 1.1. Dart是单线程的 1.1.1. 程序中的耗时操作 开发中的耗时操作: 在开发中,我们经常会遇到一些耗时的操作需要完成,比如网络请求、文件读取等等; 如果我们的主线程一直在等待这些耗时的操作完成,那么就会进行阻塞,无法响应其它事件,比如用户的点击; 显然,我们不能这么干!! 如何处理耗时的操作呢? 针对如何处理耗时的操 开发运维 2023-07-13 剑圣无痕
37.RocketMQ之Broker消息存储源码分析 消息存储文件 rocketMQ的消息持久化在我们在搭建集群时都特意指定的文件存储路径,进入指定的store目录下就可以看到。 下面介绍各文件含义 CommitLog 存储消息的元数据。produce发出的所有消息都会顺序存入到CommitLog文件当中。 CommitLog由多个文件组成,每个文件固定大小1G。以第一条消息的偏移量为文件名。 ConsumerQueue 对CommitLog做索引, 开发运维 2023-07-13 捡田螺的小男孩
Python input()函数用法: 数据类型的强制转换 一、input() 函数 二、input() 函数的数据类型 三、input() 函数结果数据类型的强制转换 四、input() 函数判断输入内容的数据类型 一、input() 函数 input() 函数是输入函数,当你在函数的括号内写出问题时, input() 函数会将此问题原样显示在屏幕上,并在终端区域等待你针对此问题的回答。 注意:设置变量后,哪怕是括号内原本带有字符串内容,变量值依旧指终端 开发运维 2023-07-13 大树
手撸RPC框架 实现自定义网络传输协议 大家好,我是小趴菜,接下来我会从0到1手写一个RPC框架,该专题包括以下专题,有兴趣的小伙伴就跟着我一起学习吧 本章源码地址:gitee.com/baojh123/se… 自定义注解 -> opt-01 服务提供者收发消息基础实现 -> opt-01 自定义网络传输协议的实现 -> opt-02 自定义编解码实现 -> opt-03 服务提供者调用真实方法实现 -> 开发运维 2023-07-13 张二河
Python字符串处理的8招秘籍 Python的字符串处理,在爬虫的数据解析、大数据的文本清洗,以及普通文件处理等方面应用非常广泛,而且Python对字符串的处理内置了很多高效的函数,功能非常强大、使用非常方便。今天我就把字符串处理时用到最多的方法总结分享给大家,希望大家可以轻松应对字符串处理。 1.字符串的切片和相乘 (1)切片 (2)相乘 当我们编写Python代码时要分隔符,此时用字符串的乘法操作就很容易实现。 2.字符串的 开发运维 2023-07-13 法医
手撸RPC框架 自定义编解码实现 大家好,我是小趴菜,接下来我会从0到1手写一个RPC框架,该专题包括以下专题,有兴趣的小伙伴就跟着我一起学习吧 本章源码地址:gitee.com/baojh123/se… 自定义注解 -> opt-01 服务提供者收发消息基础实现 -> opt-01 自定义网络传输协议的实现 -> opt-02 自定义编解码实现 -> opt-03 服务提供者调用真实方法实现 -> 开发运维 2023-07-13 大白菜程序猿
理解Python面向对象及装饰器 与Java的封装相比,Python的封装显得没有那么严格。Java中封装通过访问修饰符实现并用this关键字来解决变量名与类变量命名冲突问题。例如,如果Java类的一个类变量或类方法的访问修饰符为private,那么类以外的地方都不能引用到该类变量或类方法,换句话说,该变量或方法对外屏蔽,以确保把不必要对外透露的细节封装起来,使得类与类之间的调用更简单而不需要在意实现的细节。 Python类若想对 开发运维 2023-07-13 宇宙之一粟
quarkus依赖注入之四:选择注入bean的高级手段 欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):github.com/zq2599/blog… 本篇概览 本文是《quarkus依赖注入》系列的第四篇,在应用中,一个接口有多个实现是很常见的,那么依赖注入时,如果类型是接口,如何准确选择实现呢?前文介绍了五种注解,用于通过配置项、profile等手段选择注入接口的实现类,面对复杂多变的业务场景,有时候仅靠这两种手段是不够的, 开发运维 2023-07-13 穿过生命散发芬芳
认识Python函数两个概念:形参与实参 Python编写一个比较两个数字大小的函数pMax()。def pMax(a,b): '''比较两个数字的大小,并返回较大的数字''' if a < b: print("{0}与{1}的较大数字是{2}。".format(a,b,b)) else: print("{0}与{1}的较大数字是{2}。".format(a,b,a)) 形参 从上面的函数定义中,我们把函数pMax小括号中的a和b当 开发运维 2023-07-13 宇宙之一粟
学习 etcd 存储的第一步,从 Etcd 框架和 Put 操作源码说起(详细版) etcd 是一个分布式、高可用的键值存储系统,它被设计为可靠的、安全的、快速的,并具有简单的API。 etcd 使用 Go 语言开发,基于 Raft 算法实现了分布式一致性。它可以用于存储集群中的关键配置信息、服务发现、锁等。 etcd 的数据模型类似于一个简单的文件系统,支持 PUT、GET、DELETE 等操作,每个节点的数据会自动同步到其他节点上,因此可以实现高可用、自动故障转移等功能。et 开发运维 2023-07-13 向阳逐梦
学习怎样配置Dart开发环境,变量声明、数据类型、函数、运算符、控制流程语法 学习了怎样配置Dart的开发环境,对变量声明、数据类型、函数、运算符、控制流程语法进行说明,为更深入学习Dart或者Flutter打下基础。 什么是Dart语言 Dart语言是谷歌公司在2011年推出的新的计算机语言。Dart可以应用于web、服务器、移动应用和物联网等领域的开发。Dart的终极目标是取代JavaScript。Dart设计完全脱离JavaScript,因此它没有向后兼容JavaSc 开发运维 2023-07-13 大猫
从有趣的角度学习C++ STL stack&queue 从有趣的角度学习C++ STL stack&queue 小星是小明的弟弟(成分复杂),对C++方面比较感兴趣,于是想向对C++比较了解的哥哥小明学习,但是又比较懒于是就... 👨🚀小明:”小星,今天我们来学习stack&queue基础知识及其模拟实现“ 🧚小星:”啊?这么长的名字,肯定很难...(虽然对C++感兴趣,但是听起来好难,好想打游戏啊)“ 👨🚀小明:”有句话你在高中的 开发运维 2023-07-13 剑圣无痕
理解python中反转列表的三种方式 1、内建函数reversed() 注意:reversed()函数返回的是一个迭代器,而不是一个list,所以需要list函数转换一下 2、内建函数sorted() sorted()语法 参数说明: iterable – 可迭代对象。 cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。 key – 主要是用来 开发运维 2023-07-13 三掌柜
理解 Spring Web 的 DataBuffer 本文将详细阐述 Spring Web 中的 DataBuffer 概念,包括其背后的思想、使用场景以及如何在实际项目中应用 DataBuffer。文章将通过实际示例展示 DataBuffer 的用法,以帮助开发者更好地理解和应用该技术。 1. 什么是 DataBuffer 在 Spring Web 中,DataBuffer 是一个关键的数据结构,用于处理非阻塞性网络通信。在响应式编程模型中,非阻塞 开发运维 2023-07-13 宇宙之一粟