04 2020 档案
摘要:1.简介 统计学习方法都是由模型、策略和算法构成的 2.模型 在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。 模型的假设空间包含所有可能的条件概率分布或决策函数。 2.1 决策函数模型 2.2 条件概率 决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型 3 学习策略 考虑
阅读全文
摘要:1 基本分类 1.1.监督学习 输入空间(input space ):输入所有可能取值的集合 输出空间(output space):输出所有可能取值的集合,通常输出空间远远小于输入空间 特征空间:每个具体的输入是一个实例(instance),通常由特征向量(feature vector)表示。这时,
阅读全文
摘要:统计学习:统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。 统计学习的主要特点: (1)统计学习以计算机及网络为平台,是建立在计算机及网络上的 (2)统计学习以数据为研究对象,是数据驱动的学科 (3)统计学习的目的是对数据进行预测与分析 (4)统计学习以方法为中
阅读全文
摘要:目录 SQLAlchemy04 /SQLAlchemy查询高级 1、排序 2、limit、offset和切片操作 3、懒加载 4、group_by 5、having 6、join 7、subquery 1、排序 排序概述: order_by:可以指定根据这个表中的某个字段进行排序,如果在前面加了一个
阅读全文
摘要:SQLAlchemy03 /外键、连表关系 目录 SQLAlchemy03 /外键、连表关系 1、外键 2、ORM关系以及一对多 3、一对一的关系 4、多对多的关系 5、ORM层面的删除数据 6、ORM层面的CASCADE 1、外键 外键简述 使用SQLAlchemy创建外键非常简单。在从表中增加一
阅读全文
摘要:SQLAlchemy02 /SQLAlchemy对数据的增删改查操作、属性常用数据类型详解 目录 SQLAlchemy02 /SQLAlchemy对数据的增删改查操作、属性常用数据类型详解 1、用session做数据的增删改查操作: 2、SQLAlchemy常用数据类型: 3、Column常用参数:
阅读全文
摘要:SQLAlchemy01 /SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中 目录 SQLAlchemy01 /SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中 1、使用SQLAlchemy去连接数据库: 2、ORM介绍: 3、将ORM模型映射到数据库
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64418286 假设有一组数据, 已知每一个产品贡献的利润,如果要计算前几名产品的贡献利润总和,或者每一个产品和利润更高产品的累计贡献占总体的比例,就涉及到累计求和,数据量较小的情况下,在 Excel 中可以轻松实现,毕竟 Excel 是对
阅读全文
摘要:https://zhuanlan.zhihu.com/p/67803111 本文源于微博上一位朋友的问题,在计算同比增长率时,以下两种DAX代码有什么不同? YOY% 1 = VAR sales=SUM('订单'[销售额]) VAR lysales= CALCULATE( SUM('订单'[销售额]
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64414205 前面介绍如何使用DAX生成日期表的时候,使用了VAR,有人留言问这个VAR怎么理解,那么这篇文章就来介绍VAR以及它的用法。 VAR是VARIABLE的缩写,意思为变量,任何一个编程语言中,变量都是一个非常重要的基础概念,D
阅读全文
摘要:https://zhuanlan.zhihu.com/p/74732578 来源于知识星球中一个星友的问题,使用DAX在PowerBI中新建了一个表,如何为这个表添加索引列呢? 假如数据模型中只有一张订单表,需要从订单表中提取客户表,可以直接使用VALUES函数提取一个不重复客户表, 如何为这个表
阅读全文
摘要:https://zhuanlan.zhihu.com/p/70590683 关于占比,之前有篇文章(利用ALL和ALLSELECTED灵活计算占比)详细介绍了各种情况下占比的度量值。 经星友咨询,还有一种情况没有介绍,实际工作中会经常用到的情形是:父级字段显示该层级值占总体的比例,而打开该层级,显示
阅读全文
摘要:https://zhuanlan.zhihu.com/p/57861350 计算个体占总体的比例是一个很常见的分析方式,它很简单,就是两个数字相除,但是当需要计算的维度、总体的范围发生动态变化时,如何灵活且快速的计算出各种占比,还是需要动一点心思的。 本文就通过 DAX 中的 ALL 和 ALLSE
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64400583 前面利用PowerBI做数据分析的时候都是对整列的字段进行操作,并没有做更细化的分析,比如分析数据的每一行、提取某一行的数据,这在Excel中很容易实现,因为Excel公式是对单元格操作。那么在PowerBI中能不能按行分析
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64421003 学习 DAX 的过程中,会遇到各种坑,刚开始甚至无法写出一个正确的度量值,总是提示错误。其实很多原因都是不理解 DAX 函数及其参数规范造成的,在该用表的时候没有用表,该用列的时候没有用列。 常见的 DAX 函数返回一个值,
阅读全文
摘要:https://zhuanlan.zhihu.com/p/75462046 对于初学者,总是会把度量值和计算列搞混,我也经常碰到这样的问题,有些星友用文章中的代码总是报错,发给我一看,才知道TA把本来是度量值的DAX用在了计算列上,或者相反。 即使是已经学习了很长时间的人,对于计算列和度量值的写法也
阅读全文
摘要:https://zhuanlan.zhihu.com/p/109964336 今年是闰年,有星友问我,在Power BI中,2月29日的上年同期是怎么计算的? 这是个好问题,正好梳理一下,PowerBI时间智能函数是如何处理不规则日期的对比数据的。 以一个模拟的订单表数据为例,订单日期涵盖了201
阅读全文
摘要:在学习PowerBI的过程中,尤其是刚接触的时候,不可避免的会遇到各种各样的错误,有时自己怎么检查都没法消除,不解决这个错误又没法进行下一步的工作,经常会搞的自己烦闷无比,不过最后通过自己的苦苦摸索、或者他人的片语点拨而解决后,也会欣喜异常。 你遇到的问题,我同样也都遇到过,并且我遇到的更多(因为我
阅读全文
摘要:按照自然日历来展现疫情数据时,是这样的效果, 由于各个国家的疫情爆发时间不一致,按自然日期坐标轴很难比较各个国家的蔓延速度。 如果各个国家都从蔓延日开始统计,展示之后每日的确诊人数,就是同样的时间轴,可以很直观的看出每个国家的发展速度。 这里的难点在于,如何确定开始蔓延日期,以及如何根据蔓延日期,
阅读全文
摘要:Power BI的增量刷新功能现在已经对Pro用户开通,但由于种种限制,很多人依然无法使用无这个功能,所以,每一次刷新,都要彻底更新数据集。这对于量级比较大的数据集来说,着实是一件耗费时间的事情。 拿我的亲身经历举个例子,我有一份报表涵盖了客户近3年的销售情况,由于客户的业务流量比较大,数据集的每一
阅读全文
摘要:最近碰到几个星友的问题,都是问我之前分享的源文件是如何把度量值分门别类放到不同的文件夹中的,就像这样, 其实在之前的文章中也曾提及过做法,这里再详细说一下制作步骤: 01 | 新建一个空表 点击菜单栏的"输入数据",在弹出的窗口中,无需输入任何数据,可以直接点击加载。你也可以给这个表命名为你想要的名
阅读全文
摘要:上一篇文章中的分组,都是通过新建列的方式实现的,直观上比较容易理解。不过这样都修改了原始数据的结构,如果我们不在源表上进行修改,直接通过度量值的方式来进行分组,是否可以实现呢? 答案当然是肯定的。 采用度量值的方式首先定义好分组的类别和标准,然后把需要分组的数据分别统计到指定的分组中。 依然按照上篇
阅读全文
摘要:有了前两篇关于分组的铺垫,这篇文章就来学习一个分组的经典应用,图表的动态分组,并对分组动态配色。 假设有十几个产品,每个产品的销售额,是随着时间而变化的,想知道某个时间的每一个产品的销售额与平均销售额的对比,并重点关注超过平均值的明星产品。 利用分组计算,高于平均值的产品用蓝色显示,低于平均值的用红
阅读全文
摘要:今天分享一个可视化小技巧,如何在PowerBI的表格中动态显示需要的列? 就是这样的效果, 也就是根据切片器的筛选,来显示需要的列,做起来很简单,步骤如下: 01 逆透视表 进入Powerquery编辑其中,对该表格逆透视。 选中基础列,也就是固定显示的列,比如[产品名称],然后逆透视其他列, 逆透
阅读全文
摘要:根据某一个维度的数据,进行分组统计,是很常见的做法,比如按年龄对客户进行分组,按考试成绩进行分组统计等,这篇文章介绍一下,在PowerBI中如何对数据进行分组。 在PowerQuery编辑器中分组 在PQ中,直接用添加条件列的方式进行分组,假设依据数学成绩来进行分组,直接添加条件列,分别填入相应的分
阅读全文
摘要:默认情况下,PowerBI图表的标题是静态的,为了增强图表的可读性,通过设置动态标题,可快速展示关键信息、提升沟通效率。本文通过两个简单的例子来看看PowerBI中如何创建动态标题。 /01/ 拿之前文章中介绍移动平均的例子来看,标题是静态的, 只能通过看切片器显示的数字来获悉是当前状态是多少天的移
阅读全文
摘要:今天给大家分享一个动态显示数据层级的技巧,效果如下: 无论想按什么维度、什么顺序查看分析数据,只需要选择不同的切片器组合就行了。 方法如下:01 | 把数据聚合为分析需要的最细粒度 本文假设最细分析粒度为月度,可以通过分组功能聚合,这样可以显著的降低数据的行数。 02 | 添加索引列 03 | 对分
阅读全文
摘要:使用PowerBI的时候,一个很不爽之处就是数据单位的设置,只能用千、百万等英美的习惯来显示,而没有我们中文所习惯的万亿等单位,虽然要求添加"万"的呼声很高,但迟迟未见到改进动作,也许中国PowerBI的使用者还不够多吧。 既然微软没有动静,那我们自己动手来设置,下面就来看看如何通过度量值的设置来进
阅读全文
摘要:之前的文章中介绍了如何制作动态的分析指标,这篇进行文章再介绍一下如何制作动态的坐标轴。 假设要分析的数据为销售额,分别从产品和地区两个维度进行分析,要实现的效果是,如果选择的是产品,则坐标轴是各个产品的名称,对应的是各个产品的销售额;如果选择的是地区,则坐标轴为城市,展现的是各个城市的销售额。 要达
阅读全文
摘要:数据中的明细项一般都有很多,可是我们关注的往往只是前几名,所以在报表中只展示关注的部分,就十分常用。 有了上篇(这几个示例,帮你深入理解RANKX排名)关于排名的铺垫,仅显示前N名就简单多了。 依然以上篇文章数据中的数据为例,按销售额的高低来显示前几名的产品,使用最常用的排名方式, 排名 = RAN
阅读全文
摘要:本文来自于PowerBI星球嘉宾天行老师的分享,天行老师不仅DAX使用娴熟,更是精通SQL,下面就来欣赏他利用SQL思维编写DAX解决问题的一个实战案例。 基于SQL思维使用DAX解决实战问题 作者:天行 学习掌握DAX语言的初期,尤其是刚开始尝试将DAX应用到实战中时,书上的、别人的例子永远是别人
阅读全文
摘要:1 简介(思维导图) 2 重要概念 3 数据转换 4 可视化如何帮助决策 5 可视化图像
阅读全文
摘要:1. 核技巧在支持向量机中的应用 2. 正定核 3. 常用核函数 3. 序列最小最优化算法
阅读全文
摘要:1 简介 有时分类问题是非线性的,这时可以使用非线性支持向量机。 1.1 非线性问题 用线性分类方法求解非线性分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间;然后在新空间里用线性类学习方法从训练数据中学习分类模型。核技巧就属于这样的方法。 1.2 核技巧 2 模型 2.1 核函数 2.
阅读全文
摘要:1 简介 线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为这时上述方法中的不等式约束并不能都成立。 怎么才能将它扩展到线性不可分问题呢?这就需要修改硬间隔最大化,使其成为软间隔最大化。 2 模型 2.1 相关条件 2.2 模型 3 学习策略 4 算法 对偶形式 5 概念扩展 5
阅读全文
摘要:1 简介 支持向量机(support vector machines> SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持 向量机还包括核技巧,这使它成为实质卜的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规
阅读全文
摘要:相关概念: 协程:一个线程并发的处理任务 串行:一个线程执行一个任务,执行完毕之后,执行下一个任务 并行:多个CPU执行多个任务,4个CPU执行4个任务 并发:一个CPU执行多个任务,看起来像是同时执行 并发真正的核心/本质:切换并且保持状态 多线程的并发:3个线程处理10个任务,如果线程1处理的这
阅读全文
摘要:1. 背景 理论上来说:单个进程的多线程可以利用多核. 但是,开发Cpython解释器的程序员,给进入解释器的线程加了锁. 2. 加锁的原因: 当时都是单核时代,而且cpu价格非常贵. 如果不加全局解释器锁, 开发Cpython解释器的程序员就会在源码内部各种主动加锁,解锁,非常麻烦,各种死锁现象等
阅读全文
摘要:什么是线程 标准描述开启一个进程:开启一个进程:进程会在内存中开辟一个进程空间,将主进程的资料数据全部复制一份,线程会执行里面的代码. ***进程是资源单位, 线程是执行单位;是操作系统调度的最小单元,是进程中的实际运作单位. 线程vs进程 开启进程的开销非常大,比开启线程的开销大很多. 开启线程的
阅读全文
摘要:概念 串行:所有的任务一个一个的完成. 并发:一个cpu完成多个任务.看起来像是同时完成. 并行:多个cpu执行多个任务,真正的同时完成. 阻塞:cpu遇到IO就是阻塞. 非阻塞:没有IO,就叫非阻塞. 程序:一堆静态文件 进程:一个正在执行的程序任务,一个程序能否开启多个进程 进程的创建 一个子进
阅读全文
摘要:在一个图表中,可以将多项指标数据放进去同时显示,如果不想同时显示在一起,可以根据需要动态显示数据吗?在 PowerBI 中当然是可以的。 下面就看看如何利用度量值进行动态分析。 假如要分析的指标有销售额和利润,已经分别创建了度量值, 销售额 = sum('订单'[销售额])利润 = SUM('订单'
阅读全文
摘要:按周进行数据分析,在零售业、电商等类型的公司中很常见,但是不少人觉得按周进行分析无从下手,一个主要的原因是找不到对应的函数,因为时间智能函数只对应年、季、月、天这几个粒度,没有关于周的时间智能函数。 没有相应的函数当然也能搞定,本文就介绍几种常见的周分析的思路,掌握后就可以灵活地进行各种时间分析。
阅读全文
摘要:目前PowerBI的表格已经支持多列排序,但是矩阵依然还不支持按多个字段排序,虽然这个需求很普遍,这里利用DAX提供一个变通的实现方式。 模拟数据如下,有两个数据指标: 对类别首先按[指标一]进行排序,如果[指标一]数据相同,则按[指标二]排序。 因为PowerBI目前只能按一列排序,自然会想到构造
阅读全文
摘要:假如分别有100个不重复的姓和名,把每个姓和名进行组合匹配,就可以得到一万个不重复的姓名组合,这种完全匹配的方式就是生成一个姓名的笛卡尔积。 下面就来看看生成笛卡尔积的几种方式,为了展现的方便,以5个姓和5个名为例,更多的数据也是一样操作的。 在Excel中生成笛卡尔积 在Excel中可以利用IND
阅读全文
摘要:时间序列预测就是利用过去一段时间内的数据来预测未来一段时间内该数据的走势,比如根据过去5年的销售数据进行来年的收入增长预测,根据上个季度的股票走势推测未来一周的股价变化等等。 对于大部分人来说,这是个相对比较复杂的预测建模问题,但在工具如此丰富的今天,当然可以不用自己动手建模,很多工具都可以实现这一
阅读全文
摘要:之前的文章(采悟:连接表的几个DAX函数,一次全掌握)介绍了产品A的客户与产品B的客户的各种交叉关系,其中最常用的应该是找出A和B的共同客户,以便进行产品关联分析。 之前的思路是计算出两个产品的共同客户数,那么能不能选择三个产品呢,当然是可以的,利用上篇文章的思路,把三种产品的客户找出来,然后求三个
阅读全文
摘要:各种复杂现象的背后,其实都是受关键的少数因素和普通的大多数因素所影响,把主要精力放在关键的少数因素上,就能达到事半功倍的效果。 这就是大家常说的二八原则,也称为帕累托原则,最早是由意大利经济学家 V.Pareto 提出的,他在研究个人收入的分布状态时,发现少数人的收入占全部人收入的大部分,而多数人的
阅读全文
摘要:周末放松一下,给大家分享一个小技巧,仅利用DAX制作一个简易的时钟。 时钟效果如下: 这个时钟的制作只需一个度量值,你信吗? 事实上确实如此,制作步骤介绍如下: 1,新建参数,生成一个数字序列作为小时数据。 然后会生成一个1到12的单列表,和一个切片器。 2,利用UNICHAR函数建立度量值。 度量
阅读全文
摘要:性能分析器是Power BI前几个月推出的功能,主要用于检测视觉对象和DAX的性能如何,该功能的使用比较简单,首先勾选这个功能, 然后点击开始记录并刷新视觉对象,就可以看出每个元素耗费的时间,如下图, 上面的功能很直观,并不需要特别的介绍,关于性能分析器的另外一个功能才是本文要说的。 这个功能可以
阅读全文
摘要:本文来自星友Beau的分享,在进行数据指标的展现时,对关键的少数单独展示,而对剩余的大多数折叠为其他项,是一个很常用的做法。Beau同学通过一个日常的办公场景,详细介绍了PowerBI实现的步骤,值得大家借鉴。 KPI指标动态展示之TOPN及其他 作者:Beau 一、背景故事 2020年第一天上班
阅读全文
摘要:1 简介 最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。 2 模型 2.1 特征函数 2.2 特征函数期望 2.
阅读全文
摘要:1 简介 逻辑斯谛回归(logistic regression)是统计学习中的经典分类方法。 最大嫡是概率模型学习的一个准则,将其推广到分类问题得到最大嫡模型(maximum entropy model )。 逻辑斯谛回归模型与最大嫡模型都属于对数线性模型。 2 模型 2.1 逻辑斯谛分布 2.2
阅读全文
摘要:1 简介 1.1 介绍 1.2 生成步骤 CART树算法由以下两步组成:(1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;(2)决策树剪枝:用验证数据集对己生成的树进行剪枝并选择最优子树,这时用损失函数址小作为剪枝的标准。 2 算法 2.1 回归树 对回归树用平方误差最小化准则,生成
阅读全文
摘要:1 简介 决策树模型是树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策
阅读全文
摘要:https://zhuanlan.zhihu.com/p/101812525 PowerBI中,有三个地方可以使用DAX,分别是度量值、新建列和新建表,这三个功能并成一排摆放在这里,如图所示, 之前的文章中曾介绍了度量值和计算列的异同(收藏 | Power BI计算列和度量值,一文帮你搞清楚),这
阅读全文
摘要:https://zhuanlan.zhihu.com/p/55295072 静态的分析经常不能满足实际分析的需要,还需要引入动态分析,通过调节某个维度的增减变化来观察对分析结果的影响。在PowerBI中,可以使用「参数」,以切片器的形式来控制变量,与其他指标进行交互,进而完成动态分析。 创建「参数」
阅读全文
摘要:https://zhuanlan.zhihu.com/p/99818030 在知识星球遇到的问题中,有不少朋友问如何修改数值型度量值的格式,比如,新建的度量值如何显示为百分比或者千分位等等,这篇文章就帮你掌握修改格式的几种方式。 假设已经建好了度量值: 收入 = SUM('订单'[销售额]) 以此
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64421933 经常有朋友问,当把文本字段放到坐标轴或者切片器上,显示的顺序都乱了,完全不是自己想要的,就像下面这些, ↑月份坐标轴 ↑星期切片器 ↑奖牌切片器 以上这些都是文本类的数据,文本数据默认是按照字母来排序的,但是这样的排序明显与
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64418072 源数据常常包含各种差错值,为了进行下一步的分析,我们必须先找出并更正这些差错,做这些工作几乎不会有什么快乐感可言,但却往往需要耗费很多精力。如果利用数据准备工具就能够发现这些数据质量问题,我们就可以节省大量时间。 Power
阅读全文
摘要:https://zhuanlan.zhihu.com/p/67932754 在PowerBI报表中,切片器绝对是最常用的控件了,利用它可以进行各种维度的动态切换,同一个页面中的所有图表可以同步响应;利用PowerBI的同步切片器功能,不同页面也可以设置同步响应。 同步切片器 在【视图】选项卡下,勾选
阅读全文
摘要:https://zhuanlan.zhihu.com/p/67564062 进行数据分析时,每个分析维度并不总是独立的,比如省份是一个维度,城市也是一个维度,而这两个维度之间是有逻辑关系的,那么在进行切片分析时,我们希望能达到动态联动的效果。在PowerBI中,只要维度表的数据有关系并建立了层次结构
阅读全文
摘要:例1 极大似然佑计 第一步:先验概率及条件概率 先验概率 条件概率 第二步: 第三步:确定实例x的类 例2 贝叶斯佑计 第一步:先验概率及条件概率 先验概率 条件概率 第二步: 第三步:确定实例x的类
阅读全文
摘要:1 简介 先验概率分布 后验概率分布 2 模型 3 策略 朴素贝叶斯法将实例分到后验概率最大的类中。这等价于期望风险最小化。 4 算法 4.1 极大似然佑计 4.2 贝叶斯佑计
阅读全文
摘要:1. kd树简介 构造kd树的方法如下:构造根结点,使根结点对应于k维空间中包含所有实例点的超矩形区域;通过下面的递归方法,不断地对k维空间进行切分,生成子结点。在超矩形区域(结点)上选择一个坐标轴和在此坐标轴上的一个切分点,确定一个超平面,这个超平面通过选定的切分点并垂直于选定的坐标轴,将当前超矩
阅读全文
摘要:1 简介 k近邻法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类。k近邻法假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此,k近邻法不具有显式的学习过程。k近邻法实际上利用训练数据集对一特征向
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64416522 交互式设计可以让用户使用的过程中更具参与感,在PowerBI中经常用到的交互方式就是切片器,利用它可以从不同维度查看数据,切片器的使用比较简单,刚开始接触PowerBI都可以轻松使用。 由于时间序列分析极为常用,所以日期切片
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64999937 Excel作为使用最频繁、应用最广泛、用户最庞大的数据处理工具,当然也应该是PowerBI最常用的数据获取方式,本文介绍一下将Excel数据导入到PowerBI的几种方式。 01 | 在PowerBI Desktop中获取数
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64415543 把Excel中数据加载到PowerBI中我们都已经熟悉了,但是怎么把在PowerBI中处理好的数据导出到Excel中呢?毕竟大多数时候,Excel工作簿才是与他人分享数据的通用格式。 特别是PowerBI对数量级没有限制,处
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64414831 刚开始学习PowerBI,最头疼的可能就是度量值了,毕竟用了Excel这么多年,只相信自己眼睛看到的,对于这个"虚拟"的字段,总感觉有点难以理解。 即使稍微理解了,却又碰到了不会写DAX的苦恼,知道自己想要什么结果,但不知道
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64413703 通常情况下,在PowerBI进行分析的各种数据表都是从外部的各种数据源导入进来的,但并不总是如此,某些情况下在PowerBI Desktop中也可以根据需要直接建立各种表格。 在进行数据分析的过程中,也许还需要加入新的数据表
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64413000 在PowerBI的可视化对象中,还有两个「表格」对象,表格的作用不仅可以在报表提供明细数据,还经常用来测试度量值的返回结果, 因为它们使用起来十分简单,就是把字段拖进去就可以显示出来数据,看起来和Excel表格也没有什么不同
阅读全文
摘要:https://zhuanlan.zhihu.com/p/67316729 PowerBI 3月的更新,正式发布了建模视图,而之前只是预览功能。新的建模视图到底有什么用,下面带你认识一下它的主要功能。 认识建模视图 打开PowerBI Desktop,左侧边缘的最下面就是建模视图按钮, 首先看到的就
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64412190 本文来自星球嘉宾"海艳"的分享,关于Power BI的问答功能以及各项细节,海艳详细为大家逐一介绍,下面就直接进入她的精彩分享吧。 深入了解Power BI的问答功能 作者:海艳 很开心能够加入星球 ,和伙伴们一起来学习P
阅读全文
摘要:https://zhuanlan.zhihu.com/p/79036123 在 PowerBI 中还有一种有趣的交互方式:跨页钻取。它可以通过点击某个数据点,钻取到另一个页面,进一步展示该数据点的详细信息。 本文就给大家介绍一下这种交互方式的做法和效果。 以下面的气泡地图为例,要实现的效果是,当点击
阅读全文
摘要:https://zhuanlan.zhihu.com/p/36804592 在PowerBI上个月的更新中,增加了工具提示功能,这项功能允许您将自己的可视化作品放置到工具提示中,通过鼠标悬停的方式来展示它们. 让我们先看看工具提示的效果, 随着鼠标的移动,自动筛选出可视化结果,以提示的方式展示出来,
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64412190 PowerBI可视化与传统图表的一大区别,就是可视化分析是动态的,通过页面上筛选、钻取、突出显示等交互功能,可以快速进行访问、发现、探索数据背后的规律。但是,不必要的交互会将优异的分析变成无用分析,本文介绍如何恰到好处地使用
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64406366 查看可视化图表的时候,我们可能想深入了解某个视觉对象的更详细信息,或者进行更细粒度的分析,比如看到2017年的总体数据,同时想知道每个季度甚至每个月的数据,通过PowerBI的钻取功能,可以点击鼠标轻松实现。 当图表中的数据
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64405494 图表很直观,但有时候我们不仅想看图,也想更进一步查看生成该图表的明细数据,在PowerBI中有三种方式。 (一)在图表上单击右键,选择“查看数据” 数据可以显示在图表右侧,也可以放在图表下边,数据显示出来后,点击右上角的三个
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64383000 介绍过CALCULATE函数之后,有必要再介绍它的最佳搭档:FILTER函数。 CALCULATE函数的第二个及之后的参数是筛选条件,而FILTER函数正是为筛选而生。 FILTER语法 FILTER(<table>,<fi
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64382849 介绍DAX的时候,特别强调过一个重要的函数:CALCULATE,本文就来揭秘这个函数的计算原理以及它是如何影响上下文的。 CALCULATE的语法结构 语法: CALCULATE(<expression>,<filter1>
阅读全文
摘要:DAX是英文Data Analysis Expression的缩写,意思是数据分析表达式,从名称上就可以看出,DAX公式是用作数据分析的,事实上也确实如此,从数据分析层面认识DAX会更有助于我们理解它. https://zhuanlan.zhihu.com/p/64272859 01 | 认识DAX
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说,这是个全新的概念,但一旦理解了她,肯定会立即喜欢上。 简单来说,度量值是用DAX公式创建一个虚拟字段
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64149834 数据建模并没有那么高深,你同样可以学会!这篇文章通过一个实例创建一个简单的数据建模,并引出两个重要的概念:度量值和DAX. 之前谈论PowerBI与Power Pivot的关系时就提到,Power BI数据建模其实就相当于E
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64148928 前面我们学习PQ的时候都是用鼠标操作,虽然通过这些操作能完成大部分的数据处理,但是毕竟还有些复杂的工作是处理不了的,如果想彻底驾驭PQ,必须得掌握点高级玩法。就像学习Excel一样,做个表格我们只要会简单的操作就可以了,但要
阅读全文
摘要:https://mp.weixin.qq.com/s?__biz=MzA4MzQwMjY4MA==&mid=2484067158&idx=1&sn=4ad955112df2f40a93b684ed9147f26e&chksm=8e0c7181b97bf89777ae3d9de929867745edc
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64148432 上一篇文章都是在原表数据基础上的分分合合,但做数据分析的时候还经常需要在原有数据的基础上增加一些辅助数据,比如加入新列、新行,或者从其他表中添加进来更多维度的数据,这些就是数据丰富的过程。 01添加列 Power Query
阅读全文
摘要:1 大数定理 1.1 弱大数定理 概念一 概念二 概念三 1.2 伯努利大数定理 2 中心极限定理 2.1 独立同分布的中心极限定理 2.2 李雅普诺夫定理 2.3 棣莫弗一拉普拉斯
阅读全文
摘要:1 数学期望 数学期望,期望,均值 2 方差 2.1 标准差,均方差 2.2 标准化变量 重要性质 2.3 切比雪夫不等式 3 协方差与相关系数 3.1 协方差、相关系数 4 矩、协方差矩阵 4.1 原点矩、中心矩、混合矩、混合中心矩 4.2 协方差矩阵 4.2.1 二维 4.2.2 n维
阅读全文
摘要:PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源、任何结构、任何形式上获取数据 https://zhuanlan.zhihu.com/p/64147364 数据的获取上不仅支持微软自己的
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64146209 Power BI与PowerQuery、PowerPivot有什么关系? 刚开始学习PowerBI的时候,总是能碰到Power Query和Power Pivot这两个词(下文简称为PQ和PP),现在中文里面学习PowerB
阅读全文
摘要:https://zhuanlan.zhihu.com/p/54700574 财务人员必学,使用Powerquery是一种什么体验? 你和Excel高手的距离只差了一个Power Query!!! 先思考一个财务日常工作中常遇到的问题:如何将多个工作簿的数据合并到一张表上? 可能不同的人有不同的做法?
阅读全文
摘要:https://zhuanlan.zhihu.com/p/64144595 体验PowerBI:零基础分分钟生成一份交互报表 首先我们准备一份数据,Excel格式 数据是从2006年到2015年10年间,中国大陆31个省市的三个产业的GDP,我们用Power BI来看看这三个产业结构近年来有什么趋势
阅读全文
摘要:来自 https://zhuanlan.zhihu.com/p/64144024 Power BI是什么? Power BI是微软推出的数据分析和可视化工具,我们先来看看微软官方是怎么介绍的: Power BI 是一套商业分析工具,用于在组织中提供见解。可连接数百个数据源、简化数据准备并提供即席分析
阅读全文
摘要:1. 思路 参考:https://stackoverflow.com/questions/20826201/simple-csrf-protection-using-nginx-alone?r=SearchResults 第一步: 前端页面向后端发送生成csrf请求(get 方法),后端服务器生成c
阅读全文
摘要:1 二维随机变量 1.1 二维随机向量(二维随机变量) 1.2 联合分布函数 1.3 离散型二维随机变量 1.4 联合分布律 1.5 连续型二维随机变量、联合概率密度 2 边缘分布 2.1 边缘分布函数 2.2 边缘分布律 2.3 边缘分布概率密度 2.4 二维正态分布 3 条件分布 3.1 条件分
阅读全文
摘要:1 随机变量 1.1 随机变量 2 离散型随机变量 2.1 离散型随机变量 有些随机变量,它全部可能取到的值是有限个或可列无限多个,这种随机变量称为离散型随机变量 2.2 分布律 2.3 0-1分布 2.4 伯努利试验、二项分布 2.5 泊松分布 3 随机变量的分布函数 3.1 分布函数 4 连续型
阅读全文
摘要:(1) a<-0, b<-0 (2) 在训练集中选取数据(xi,yi) (3)如果yi(sum(aj·yj·xj·xi+b))<=0 更新参数w,b (4) 转至(2),直到训练集中没有误分类点 示例:
阅读全文
摘要:Flask 前后端分离 Step 1: 新建一个 Flask 项目 $ mkdir pyecharts-flask-demo $ cd pyecharts-flask-demo $ mkdir templates Step 2: 新建一个 HTML 文件 新建 HTML 文件保存位于项目根目录的 t
阅读全文
摘要:1.引言 文档位于 https://pyecharts.org/#/zh-cn/intro 示例位于 https://gallery.pyecharts.org/#/README echarts 官网 https://www.echartsjs.com/zh/index.html 2.安装 pip(
阅读全文
摘要:环形图 环形图其实是另一种饼图,使用的还是上面的 pie() 这个方法,这里只需要设置一下参数 wedgeprops 即可。 例子一: import matplotlib.pyplot as plt # 中文和负号的正常显示 plt.rcParams['font.sans-serif']=['Sim
阅读全文
摘要:1 气泡图 气泡图和上面的散点图非常类似,只是点的大小不一样,而且是通过参数 s 来进行控制的,多的不说,还是看个示例: 例子一: import matplotlib.pyplot as plt import numpy as np # 处理中文乱码 plt.rcParams['font.sans-
阅读全文
摘要:1 折线图 折线图主要用于表现随着时间的推移而产生的某种趋势。 cat = ["bored", "happy", "bored", "bored", "happy", "bored"] dog = ["happy", "happy", "happy", "happy", "bored", "bore
阅读全文
摘要:https://matplotlib.org/api/rcsetup_api.html#module-matplotlib.rcsetup 一、什么是rcParams?我们在使用matplotliblib画图的时候经常会遇见中文或者是负号无法显示的情况,我们会添加下面两句话: from matplo
阅读全文
摘要:1.前言 图表要素如下图所示 # sphinx_gallery_thumbnail_number = 3 import matplotlib.pyplot as plt import numpy as np 2 画布(Figure) https://matplotlib.org/api/figure
阅读全文
摘要:一、与字符串的相互转换 1.字符串转变为etree 对象 import lxml.html tree = lxml.html.fromstring(content) # content 字符串对象 2.etree对象转变为字符串 from lxml import etree content = et
阅读全文
摘要:问题3:认证问题 Domino服务器中,通过写了一些接口代码,提供RESTful的服务,来对手机端进行提供服务。但是由于原来的环境,没有SSO,而且不通过认证,没法访问到Domino里面的接口代码。 解决方案: 手机端通过HTTP,模拟登录过程 问题4:“问题3”的解决方案,由于经过了反向代理,导致
阅读全文
摘要:1、什么是 nginx Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。 2、正向代理 (1)需要在客户端配置代理服务器进行指定网站访问 3、反向代理 暴露的是代理服务器地址,隐藏了真实服务器 I
阅读全文
摘要:出租车队运营仿真 创建几辆出租车,每辆车会拉几个乘客,然后回家。出租车首先驶离车库,四处徘徊,寻找乘客;拉到乘客后,行程开始;乘客下车后,继续四处徘徊。 程序解释 程序的输出示例: 创建 3 辆出租车的输出示例。-s 3 参数设置随机数生成器的种子,这样在调试和演示时可以重复运行程序,输出相同的结果
阅读全文
摘要:一、yield python中yield的用法很像return,都是提供一个返回值,但是yield和return的最大区别在于,return一旦返回,则代码段执行结束,但是yield在返回值以后,会交出CUP的使用权,代码段并没有直接结束,而是在此处中断。 当调用send()或者next()方法之后
阅读全文
摘要:https://www.zhihu.com/question/26526858 1 简介 感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和一1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨
阅读全文
摘要:1绪论 1 统计学习 统计学习:统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。 统计学习的对象:统计学习研究的对象是数据(data.)。数据是多样的,包括存在于计算机及网络土的各种数字、文字、图像、视频、音频数据以及它们的组合。 统计学习的目的:统计学习用于对
阅读全文
摘要:一 守护进程方式启动 https://blog.csdn.net/p571912102/article/details/82735052 文件目录如下 . ├── config.py ├── main.py ├── test │ └── tasks.py └── test2 ├── __init__
阅读全文
摘要:简介 celery beat 是一个调度器;它以常规的时间间隔开启任务,任务将会在集群中的可用节点上运行。 默认情况下,入口项是从 beat_schedule 设置中获取,但是自定义的存储也可以使用,例如在 SQL 数据库中存储入口项。 你必须保证一个调度一次只被一个调度器运行,否则将会形成重复任务
阅读全文
摘要:前言 如果你使用默认的加载器,你必须创建 celeryconfig.py 模块并且保证它在python路径中。 一、加载配置方法 1.基础方法 可以设置一些选项来改变 Celery 的工作方式。这些选项可以直接在 app 实例上进行设置,或者也可以使用一个指定的配置模块 配置使用 app.conf
阅读全文
摘要:前言 使用celery包含三个方面:1. 定义任务函数。2. 运行celery服务。3. 客户应用程序的调用。 实例一: #1. 定义任务函数 创建一个文件 tasks.py输入下列代码: from celery import Celery #导入Celery broker = 'redis://1
阅读全文
摘要:1.工作流程 celery通过消息进行通信,通常使用一个叫Broker(中间人)来协client(任务的发出者)和worker(任务的处理者). clients发出消息到队列中,broker将队列中的信息派发给worker来处理。 一个celery系统可以包含很多的worker和broker,可增强
阅读全文
摘要:现在我们手里有一个准备发布的项目,那么如何将他上传到你的服务器,并让外网访问呢? 安装: 安装Flask pip3 install flask 安装UWSGI pip3 install uwsgi 安装了Nginx sodu apt-get install nginx 安装了Gunicorn pip
阅读全文
摘要:https://www.cnblogs.com/quzq/p/12131696.html 基础篇 一、环境 服务器版本:CentOS 7.2 为了保证学习阶段不遇到奇怪的事情,请保证以下四点(大神选择性无视) 1. 确认系统网络 2. 确认yum可用 3. 确认关闭iptables 4. 确认停用s
阅读全文
摘要:1、安装Nginx sudo apt-get install nginx 2、启动Nginx sudo /etc/init.d/nginx start 3、测试安装是否成功(nginx默认是80端口)。 将树莓派的ip地址设为静态ip(我的是192.168.31.102),先从内网测试是否安装成功,
阅读全文
摘要:使用工具:siege 代码结构: hello.py templates |--hello.html hello.py代码: from flask import Flask, render_template app = Flask(__name__) @app.route('/') @app.rout
阅读全文
摘要:1.介绍 Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。 2.安装 Linux下安装siege wget http://download.jo
阅读全文
摘要:转自:https://blog.csdn.net/dutsoft/article/details/51452598 Flask,webpy,Django都带着 WSGI server,当然性能都不好,自带的web server 更多的是测试用途。线上发布时,则使用高性能的 wsgi server或者
阅读全文
摘要:Gunicorn“绿色独角兽”是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。 安装gunicorn $ sudo apt-get
阅读全文
摘要:一、基础原理 二、基本函数 三、爬虫实现 四、web服务器与客户端实现
阅读全文
摘要:文档资源 http://sdiehl.github.io/gevent-tutorial/ 一、协程实现 线程和协程 既然我们上面也说了,协程也被称为微线程,下面对比一下协程和线程: 线程之间需要上下文切换成本相对协程来说是比较高的,尤其在开启线程较多时,但协程的切换成本非常低。 同样的线程的切换更
阅读全文
摘要:一、多进程实现 multiprocess.process模块 process类 Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得到的对象,表示一个子进程中的任务(尚未启动) 强调: 1. 需要使用关键字的方式来指定参数
阅读全文
摘要:一 多线程实现 线程模块 - 多线程主要的内容:直接进行多线程操作,线程同步,带队列的多线程; Python3 通过两个标准库 _thread 和 threading 提供对线程的支持。 _thread 提供了低级别的、原始的线程以及一个简单的锁,它相比于 threading 模块的功能还是比较有限
阅读全文
摘要:一、线程 1.概念 线程是程序执行流的最小执行单位,是行程中的实际运作单位。 进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程,而线程,是运行中的实际的任务执行者。可以说,进程中包含了多个可以同时运行的线程。 2.特点 线程自己不拥有系统资源,只拥有一点儿在
阅读全文
摘要:1.数据概览 第一步当然是把缺失的数据找出来, Pandas 找缺失数据可以使用 info() 这个方法(这里选用的数据源还是前面一篇文章所使用的 Excel ,小编这里简单的随机删除掉几个数据) import pandas as pd # 相对路径 df = pd.read_excel("resu
阅读全文
摘要:首先第一部还是导入 Pandas 与 NumPy ,并且要生成一个 DataFrame ,这里小编就简单的使用随机数的形式进行生成,代码如下: import numpy as np import pandas as pd dates = pd.date_range('20200101', perio
阅读全文
摘要:1.序言 如何切片,切块,以及通常获取和设置pandas对象的子集 2.索引的不同选择 对象选择已经有许多用户请求的添加,以支持更明确的基于位置的索引。Pandas现在支持三种类型的多轴索引。 .loc主要是基于标签的,但也可以与布尔数组一起使用。当找不到物品时.loc会提高KeyError。允许的
阅读全文
摘要:引言 先介绍下 Pandas 的数据结构,毕竟数据结构是万物的基础。 Pandas 有两种主要的数据结构: Series 和 DataFrame 模块导入 首先我们在代码中引入 Pandas 和 Numpy ,如下: import numpy as np import pandas as pd Se
阅读全文
摘要:转载(有添加、修改)作者:但盼风雨来_jc链接:https://www.jianshu.com/p/238a13995b2b來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写。首先我们需要了解点
阅读全文
摘要:1.csv导入 1.1 csv导入 .read_csv()函数 pandas.read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], sep=',', delimiter=None, header='infer', na
阅读全文
摘要:1.Excel 1.1 Excel导入 read_excel() pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False, dtype=None, en
阅读全文
摘要:工具 来源 https://www.cnblogs.com/babycomeon/p/12258536.html 关于数据分析的工具这个就是一个仁者见仁智者见智的事情了,工具实在是太多了,从 Excel 到各种各样的数据, SQL 语句, R 语言以及我们计划在未来介绍的 Python 。 具体工具
阅读全文
摘要:转载自:https://www.cnblogs.com/ggjucheng/archive/2011/12/16/2290158.html 学习Linux也有一阵子了,这过程中磕磕撞撞的,遇到了问题,也解决了一些问题,学习的路子是曲折的,想总结点啥的,让刚刚学习Linux的不会望而生畏。 为啥我们要
阅读全文
摘要:一 Scrapy框架--cookie的获取/传递/本地保存 1. 完成模拟登陆2. 登陆成功后提取出cookie,然后保存到本地cookie.txt文件中3. 再次使用时从本地的cookie.txt中读取cookie,省略模拟登陆. Cookie的传递和提取 from scrapy.http.coo
阅读全文
摘要:1. scrapy有三种方法模拟登陆 1.1直接携带cookies 1.2找url地址,发送post请求存储cookie 1.3找到对应的form表单,自动解析input标签,自动解析post请求的url地址,自动带上数据,自动发送请求 2. scrapy携带cookies直接获取需要登陆后的页面
阅读全文
摘要:scrapy-redis简介 scrapy-redis是scrapy框架基于redis数据库的组件,用于scrapy项目的分布式开发和部署。 有如下特征: 分布式爬取 您可以启动多个spider工程,相互之间共享单个redis的requests队列。最适合广泛的多个域名网站的内容爬取。 分布
阅读全文
摘要:下面我们来看看,scrapy-redis的每一个源代码文件都实现了什么功能,最后如何实现分布式的爬虫系统: connection.py 连接得配置文件 defaults.py 默认得配置文件 dupefilter.py 去重规则 picklecompat.py 格式化 pipelines.py 序列
阅读全文
摘要:一、调度器 配置 SCHEDULER = 'scrapy.core.scheduler.Scheduler' #表示scrapy包下core文件夹scheduler文件Scheduler类# 可以通过设置SCHEDULER值来使用自定义的调度器, 源码 import os import json i
阅读全文
摘要:写好自己的爬虫项目之后,可以自己定制爬虫运行的命令。 一、单爬虫 在项目的根目录下新建一个py文件,如命名为start.py,写入如下代码: from scrapy.cmdline import execute if __name__ == "__main__": execute(["scrapy"
阅读全文
摘要:通过scrapy提供的扩展功能, 我们可以编写一些自定义的功能, 插入到scrapy的机制中 一、编写一个简单的扩展 我们现在编写一个扩展, 统计一共获取到的item的条数我们可以新建一个extensions.py # extendsions.py # -*- coding: utf-8-*- fr
阅读全文
摘要:一、scrapy信号使用的简单实例 import scrapy from scrapy import signals from ccidcom.items import CcidcomItem class CcidcomSpider(scrapy.Spider): name = 'ccidcomSp
阅读全文
摘要:一、爬虫中间件简介 图 1-1 图 1-2 开始这一张之前需要先梳理一下这张图, 需要明白下载器中间件和爬虫中间件所在的位置 下载器中间件是在引擎(ENGINE)将请求推送给下载器(DOWNLOADER)时会执行到的 当下载器(DOWNLOADER)完成下载后, 将下载的Response对象传回给引
阅读全文
摘要:下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量、底层的系统。 1.激活Downloader Middleware 要激活下载器中间件组件,将其加入到 DOWNLOADER_MIDDLEWARES
阅读全文
摘要:Scrapy 使用了 Twisted 异步非阻塞网络库来处理网络通讯,整体架构大致如下(绿线是数据流向): Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请
阅读全文
摘要:flash源码 def flash(message, category="message"): flashes = session.get("_flashes", []) # 从session中获取_flashes,没有则为空列表 flashes.append((category, message)
阅读全文
摘要:1. 信号(源码) 信号,是在flask框架中为我们预留的钩子,让我们可以进行一些自定义操作。 pip3 install blinker 2. 根据flask项目的请求流程来进行设置扩展点 中间件 # 代码示例 from flask import Flask,render_template app
阅读全文
摘要:1.示例代码 from flask import Flask app = Flask(__name__,static_url_path='/xx') @app.route('/index') def index(): return 'hello world 2.路由加载源码分析 2.1先执行rout
阅读全文
摘要:1.python之threading.local 当每个线程在执行 val.num=1 ,在内部会为此线程开辟一个空间,来存储 num=1 val.num,找到此线程自己的内存地址去取自己存储 num import time import threading val1 = threading.loc
阅读全文
摘要:前言 flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制,flask默认的session信息保存在cookie中,不够安全和灵活。 flask的session机制 session是用来干什么的呢?由于http协议是一个无状态的协
阅读全文
摘要:1原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalchemy应用.models import Users engine = create_engine(
阅读全文
摘要:class LoginForm(Form): #首先执行后得到的结果是UnboundField()对象 name=simple.StringField( label='用户名', validators=[ validators.DataRequired(message='用户名不能为空'), ],
阅读全文
摘要:1.请求上下文和应用上下文入栈 # 将ctx入栈,但是内部也将应用上下文入栈 ctx.push() def push(self): # 获取到的 top == ctx top = _request_ctx_stack.top if top is not None and top.preserved:
阅读全文
摘要:from flask import Flask import traceback app = Flask(__name__) @app.route('/') def hello_world(): traceback.print_stack() return 'Hello World!' if __n
阅读全文
摘要:当我们用Flask写好一个app后, 运行app.run()表示监听指定的端口, 对收到的request运行app生成response并返回. 现在分析一下, 运行app.run()后具体发生了什么事情 Flask定义的run方法如下: def run(self, host=None, port=N
阅读全文
摘要:源码解析 0. 请求入口 if __name__ == '__main__': app.run() def run(self, host=None, port=None, debug=None, load_dotenv=True, **options): # Change this into a n
阅读全文