2 千锋python和唐唐

尚未进行身份认证

我要认证

千锋讲师,定期分享Python学习笔记和经验

等级
TA的排名 2k+

MySQL数据库设计范式与反范式详解

1 第一范式该范式是为了排除 重复组 的出现,因此要求数据库的每个列的值域都由原子值组成;每个字段的值都只能是单一值。1971年埃德加·科德提出了第一范式。即表中所有字段都是不可再分的。1.1 实例重复组通常会出现在会计账上,每一笔记录可能有不定个数的值。举例来说:“数量”就是所谓的重复组了,而在这种情况下这份资料就不符合第一范式。再比如,如下联系方式是一个复合属性,就违反了该范式,在数据库中是无法分离出来的。1.2 解决方案想要消除重复组的话,只要把每笔..

2020-08-26 13:40:07

数据库设计之字段冗余

学过数据库设计的同学都知道,数据库设计有三大范式,但是在实际工作中,三大范式很难被严格的执行。本文将给大家介绍一种常见的、违反范式的数据库设计方案——字段冗余1 经典示例先来看一个经典的例子,在一些商城系统里,要显示已购买的订单,一般会显示订单号、下单时间、订单金额、商品名称等,如下图。正常我们如果按三大范式来设计表,应该是下面这样,包含【订单表】和【商品表】,在【订单表】中用【商品ID】来关联【商品表】但是这样设计的话,在订单详情页面,要显示商品名称的...

2020-08-26 13:36:16

用Python网络爬虫获取Mikan动漫资源

【一、项目背景】[蜜柑计划 - Mikan Project] :新一代的动漫下载站。是一个专门为喜欢动漫的小伙伴们打造的动漫视频在线播放网站,为大家第一时间分享最新动漫资源,每日精选最优质的动漫推荐。【二、项目目标】实现获取动漫种子链接,并下载保存在文档。【三、涉及的库和网站】1、网址如下:https://mikanani.me/Home/Classic/{}2、涉及的库:**reques****ts、****lxml、**fake_useragent3、软件*.

2020-08-26 12:01:43

Linux教程:Linux下如何高效切换目录?(附视频教程)

Linux 下对于目录的切换,大家肯定会想到一个命令:cd 命令。这个是 Linux 下再基本不过的命令,如果这个命令都不知道的话,赶紧剖腹自尽去吧。cd 命令确实很方便,但如果需要频繁在下面的目录切换,你可能要怀疑人生了:/home/alvin/projects/blogdemos/linux-system-programming/thread/home/alvin/projects/blogdemos/diff/home/harry/study/日本文化/中日交流/影视业/动作片如果

2020-08-26 11:01:27

Windows下Scoop安装、配置与使用

Scoop简介Scoop是Windows的命令行安装程序,是一个强大的包管理工具。可以在github上找到其项目的相关信息,项目网址。安装的起因:在平常生活中如果要安装像gcc、git等一些需要手动配置相关参数的工具,需要先去官网下载安装程序,点击安装,之后还需要配置,不仅过程麻烦,而且工具多了之后整理起来也相当不容易,配置也很杂,整个电脑就像被污染了一样。而scoop可以很好地解决这一问题,安装scoop后,只需要在命令行输入简单的一串命令即可安装你想要的软件。比如我想安装gcc,只需要输入s

2020-08-26 10:54:01

换一种方式编写 Spring MVC 接口

写在前面通常我们编写Spring MVC接口的范式是这样的:@RestController@RequestMapping("/v1/userinfo")public class UserInfoController { @GetMapping("/foo") public String foo() { return "felord.cn"; }}这种我都写吐了,今天换个口味,使用Spring 5新引入的函数式端点(Function...

2020-08-26 10:50:45

小清新风车短教程:10步教你绘制一副插画

AI教程:10步教你绘制一副小清新风车插画效果图Tutorial Step:1绘制房子的基础图形,先使用矩形工具(M)绘制一个120×140PX的白色矩形,作为风车房子的基础图形。但是我们的房子是一个梯形现在只是长方形,所以我们要使用自由变换工具(E)选中图形顶部的顶点向中间移动,记住移动的数值,为了图形美观我们要确保两边变换数值一致,然后我们的梯形就完成了。图1:绘制房子基本图形Tutorial Step:2绘制风车的房顶,我们只需要在梯形顶部上绘制一个三角形就..

2020-08-26 10:46:41

运维自救攻略:避免“锅”从天而降

开始这个话题之前,我们先来看看运维充(苦) 实 (bi) 的工作日常。不被理解的工作日常——运维是做什么的?——装系统的、修电脑的、机房电工、修电路的、扯网线的、搬服务器的……我们也不知道他在做什么,反正看上去整天忙来忙去的……其实,以上只是运维日常工作的一小部分。一般来说,当产品上线后,项目组成员去欢喜庆祝的时候,就是运维忙到飞起的时候。打扫战场、收尾工作,样样都要做;报警分析报告、系统监控数据报告,“告告”不能少。24小时提心吊胆的工作日常...

2020-08-26 10:37:10

从几百个Excel中查找数据,用Python一分钟搞定

今天给大家分享一个真实的办公自动化需求,日常办公肯定都会遇到的,大家一定要仔细阅读需求说明,在理解需求之后即可体会Python的强大!一、需求说明首先我们来看下今天的需求,有一份档案记录总表的Excel工作簿, 每天会根据当天日期建立新表,每天的表格内包含所有档案信息,同时也有可能会添加新的档案名。同个年度的总表在年末可能会有两、三百个工作表,同时每个表中可能也存在千余份档案信息。表格形式如下(为了直观呈现本例以7个工作表和十余份档案的形式呈现)需要完成的操作:为了方便审查特定档案信息.

2020-08-25 17:26:58

这些自动化场景,批处理脚本完全可以取代 Python

一. 写在前面提到自动化解决方案,相信大部分人会想到用 Python 语言,只需要根据功能场景,编写 Python 脚本即可相反,PC 端的 Batch 批处理 似乎快被忘记了,很多人对它嗤之以鼻,认为这么古老的脚本语言貌似没什么用,Python 似乎可以取而代之相比 Python 脚本,Batch 批处理脚本在某些场景下,使用更简洁、方便、高效,即写即用,不需要依赖 Python 环境,并且可以完全摆脱打包等繁琐步骤二. 批处理基础新建批处理脚本很简单,只需要新建一个文本文件,然后修改

2020-08-25 17:16:02

干货来了:Chrome常用快捷键整理汇总

工欲善其事,必先利其器,chrome前端调试必备工具!要想操作浏览器更有效率,我们可以试试掌握以下这些快捷键。Ctrl+N打开新窗口Ctrl+T打开新标签页Ctrl+Shift+N在隐身模式下打开新窗口Ctrl+O在 Google Chrome 浏览器中打开计算机中的文件按住 Ctrl 键的同时点击链接 或用鼠标中键(或鼠标滚轮)点击链接 从后台在新标签页中打开链接按住 Ctrl+Shift 的同时点击链接或按住 Shift 键的同时用鼠标中键(或鼠标滚轮)点击链接在新标签页中打开链

2020-08-25 17:11:13

面试官问:我把数据库部署在Docker容器内,你觉得如何?

近2年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,小编整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点。目前为止将数据库容器化是非常不合理的,但是容器化的优点相信各位开发者都尝到了甜头,希望随着技术的发展能够更加完美的解决方案出现。Docker不适合部署数据库的7大原因1、数据安全问题不要将数据储存.

2020-08-25 15:32:53

5G带给我们的机会

5G回首过去,展望未来1G时代1973年,美国著名的摩托罗拉公司工程师,马丁.库帕发明世界上第部推向民用的手机,马丁.库帕从此被成为“现代手机之父”。他的第一个电话打给了尤尔·恩格尔,这个人不是别人正是他的竞争对手,库珀兴奋地用几乎颤抖的声音说道:“尤尔,我正在用一个真正的移动电话和你通话,一个真正的手提电话!”手机那头沉默了。接电话的不是别人,正是库珀长期以来的竞争对手—贝尔实验室的一名科学家尤尔·恩格尔。但是这也标志着一个新时代的开始——无线通信的诞生。1987年11月18日,第一.

2020-08-25 14:58:42

内存小还要速度快,终于找到可以基于File的Cache了

一:背景1. 讲故事18年的时候在做纯内存项目的过程中遇到了这么一个问题,因为一些核心数据都是飘在内存中,所以内存空间对我们来说额外宝贵,但偏偏项目中有些数据需要缓存,比如说需要下钻的报表上的点,基于性能的考虑,不希望采用独立的缓存中间件,比如 redis, mongodb,毕竟再怎么滴还是要走网络io,但直接放在本机内存中也不现实,那有没有均衡于 native cache 和 cache server 之间的方案呢? 对的,就是 disk cache,毕竟 磁盘IO 的读写要远大于网络IO,更何况

2020-08-25 14:52:52

使用 Horoscope 测试 TiDB 优化器

优化器在数据库中一直位于至关重要的位置,性能调优也常常需要围绕优化器来进行。作为数据库厂商,我们希望在各类复杂的业务场景中,TiDB 都能够给出比较理想的执行计划,因此在优化器和执行器上做了非常多的工作和努力,但是选错执行计划或者索引的情况仍然是日常中最为常见的一个问题。优化器有关的问题可以简单归结为两种:统计信息准确的情况下给出了错误的执行计划。 另一类则是在统计信息过期的情况下给错了执行计划。选错索引是其中比较常见的一种情况,用户希望添加索引来加速查询速度,某些情况下,优化器可能会走到全表扫

2020-08-24 10:24:33

大型Kubernetes集群的资源编排优化

云原生这个词想必大家应该不陌生了,容器是云原生的重要基石,而Kubernetes经过这几年的快速迭代发展已经成为容器编排的事实标准了。越来越多的公司不论是大公司还是中小公司已经在他们的生产环境中开始使用Kubernetes, 原生Kubernetes虽然已经提供了一套非常完整的资源调度及管理方案但是在实际使用过程中还是会碰到很多问题:集群节点负载不均衡的问题 业务创建Pod资源申请不合理的问题 业务如何更快速的扩容问题 多租户资源抢占问题这些问题可能是大家在使用Kubernetes的过程中应该会

2020-08-24 10:16:07

UI教程:工作流程指南之需求分析

从需求到产品上线,要经历多少个阶段,每个阶段有哪些应该掌握的基础知识?工作流程第一节:需求分析。UI 设计工作,包括APP 设计、网页设计、小程序设计等方面。而一个产品完整的 UI 设计流程,是指拿到一个新的项目需求后,从设计思考开始,产品前期分析,设计产品,设计评审,用户测试,直至产品上线。工作流程如下:以上的流程都是与UI设计师密切相关的内容,我们的关注点不能只有视觉效果,孤立的设计容易脱离产品,反复修改,因此前期分析与后期支持都值得我们重视。原文中推荐使用的【...

2020-08-24 09:52:45

如何将斐波那契数列应用到排版设计中

斐波那契黄金比例数列是一组非常奇妙的数字,这种数列规律可以应用到设计、摄影、艺术创作等领域。斐波那契数列是0,1,1,2,3,5,8,13,21......从第三个数开始,每一项都等于前两项之和,接下来我们将利用这一规律制作黄金比例网格。在AI中新建画板,绘制矩形按住alt键复制矩形,CTRL+D重复操作移动矩形,按照1,1,2,3,5,8,13,21....这样的顺序依次添加参考线选中所有矩形,旋转90度选中所有矩形,旋转180...

2020-08-24 09:46:02

不可变数据之Immutable

在讲不可变数据(Immutable Data)前,先说说可变数据(Mutable Data),在原生js中创建的数据都是可变的,如: var a = {qty:1} a.qty = 10;可能有小伙伴说,可以用const啊,const对基本数据类型还行,但对引用数据类型根本没辙,如 const a = {qty:1} a.qty = 10;​ a.qty;// 10如果把对象a赋值给其它变量还会导致新的问题,如: const a =

2020-08-24 09:42:00

Flask - Cookie的使用

Flask - Cookie的使用用户使用浏览器第一次访问服务端时,服务端生成cookie,放在响应response里返回,并保存在用户浏览器里.from flask import Flask,make_response@app.route('/set/<name>')def set_cookie(name): response = make_response(redirect(url_for('hello'))) response.set_cookie('name',

2020-08-14 13:44:22

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。