10分钟提升课
快速提升和理解小知识
lemon *
仰望星空,脚踏实地
展开
-
TCP/IP网络协议
1.国际标准化组织提出的OSI模型,开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,是一个试图使各种计算机在世界范围内互连为网络的标准框架。算法一种顶层架构设计,比如盖楼有个图纸,大家一看都明白,OSI便是制定统一规范,方便网络传输中沟通协作2.OSI模型有七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层3.实际应用中用到的是TCP/IP协议四原创 2021-11-02 13:54:18 · 236 阅读 · 0 评论 -
计算机网络面试题总结
计算机网络相关的问题面试过程中问的还是挺多的,比如TCP/IP,UDP各种网络协议,TCP连接三次握手,四次挥手…网络这块知识偏理论一些,问题答案会随着你了解的深入可以一直扩展,所以多了解一些理论知识,也是你编程路上的基石,让你更有底气和自信。了解深入的多了,说的多了,也就能拉开你和别人的差距从而脱颖而出,整理了一些计算机网络相关的知识点,希望可以给大家带来帮助,一起学习成长! 1.说说OSI原创 2021-08-09 16:04:18 · 134 阅读 · 0 评论 -
Nginx快速手册(2)
1.nginx实现负载均衡配置,在nginx.conf中进行配置1.在http块中加入upstream实现负载均衡服务器列表http{ upstram myserver { server 192.168.17.129:8080; server 192.168.17.129:8081; }}2.在http块的server块中加入server_nameserver{ server_name 192.168.17.129}3.在http块的server块的loc原创 2021-08-02 10:00:04 · 151 阅读 · 0 评论 -
Nginx快速手册(1)
1.什么是nginxnginx是一个高性能的HTTP和反向代理web服务器,优秀的高并发性能,占用内存少,使它成为现在几乎所有项目部署都会采用的服务器,对于nginx来说,它对于高并发请求是专业的。所以如果想要自己技术有所提升,nginx当然是你可以吹一吹的技术啦!下面就总结一下nginx里常用的理论和部署配置,可能会分几个系列去写,浓缩的都是精华,发车啦 2.正向代理和反向代理要了解web服务器,要搞懂两个概念,正向代理和反向代理,正向代理就是你想访问国外一些羞羞的网站,你又不能直接访问原创 2021-08-02 09:54:40 · 132 阅读 · 0 评论 -
vim常用命令
原创 2021-06-24 14:57:47 · 94 阅读 · 1 评论 -
python发送邮件脚本
1.发送邮件主要用到连个协议:· SMTP协议:简易邮件传输协议,主要用于发送邮件,25端口· IMAP协议:主要用于从邮件服务器上获取邮件信息,下载邮件 143端口2.邮件发送过程中都是加密的,传输中主要用到的安全协议:TLS 传输层安全,用于SMTP加密SSL 安全端口层,用于IMAP加密3.发送邮件代码:import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerdef原创 2021-04-13 15:24:04 · 102 阅读 · 0 评论 -
冒泡排序python优化版本
1.冒泡排序是最基础的排序方式,使用两次for循环完成,内层循环比较两个相邻元素的大小,一次循环完找出最大的元素放在最后,外层循环有多少个待排元素,循环多少遍,这样两层循环完乱序的列表就排序好了,第一次循环8最大,放在最后,第二次6最大放到最后,第三次5最大放到最后,一直到排序完代码如下:def bubble_sort_v1(array): #判断传过来的参数是否为数组 if isinstance(array,list): for i in range(len(arra原创 2021-02-22 16:22:22 · 197 阅读 · 0 评论 -
定时任务开多线程
executors = { 'default': ThreadPoolExecutor(200)}job_defaults = { 'coalesce': False, 'max_instances': 3}my_scheduler = BlockingScheduler(job_defaults=job_defaults,executors=executors)for hostname in hostnames: for instance in instanc原创 2021-01-13 13:53:00 · 427 阅读 · 0 评论 -
python解决格式化时间转成时间戳涉及时区问题
1.格式化时间转时间戳方法:TIME_ZONE = 'Asia/Shanghai'def convert2ms(timestamp): if isinstance(timestamp, str): timestamp = int(timestamp) return int(timestamp * 1000)def get_timestamp_by_datetime(dt): try: tz = pytz.timezone(TIME_ZONE原创 2020-12-14 15:41:50 · 1672 阅读 · 1 评论 -
python多线程取值问题
1.最近工作中遇到一个问题,需要多线程去解决,Casandra数据库表中数据量太大的话使用count(*)统计数量会导致超时问题,可是有需求必须统计数据量,所以想了个解决方案,把一天的查询时间切分为一小时的数组,使用多线程统计每一小时的数据量,每个线程将结果写入到队列中,最后将队列中的值聚合运算就拿到了总的数据量,这其中遇到一个问题就是多线程无法直接拿到返回值,多线程写入到队列中的是一个多线程对象,解决方案就是写一个获取返回i值的类,每次多线程初始化一个取值类,线程的结果通过类方法取值之后保存到队列中。原创 2020-11-18 10:15:25 · 407 阅读 · 0 评论 -
python中的迭代器和生成器
1.迭代是python中最强有力的特性之一,迭代器用着是真的爽,可以简单地把迭代看作是一种处理序列中元素的方式,它可以高效的处理需要迭代的数据。迭代器就是实现了迭代协议的方法,iter()方法__next__()方法 2.我们处理可迭代对象的时候,如果不是用 for in 循环来迭代,还可以使用原创 2020-11-10 15:18:32 · 120 阅读 · 0 评论 -
处理涉及时区的问题
1.有时会出现这样的问题,本地代码跑的很正常,到了服务器上却出现了问题,而且这种问题每次还很棘手,不好定位,这种问题很多都是因为时区不一致导致的2.对于涉及时区的问题,都应该使用pyzt模块来解决,这个python包提供了奥尔森时区数据库,这也是许多语言和操作系统所使用的时区信息标准。3.pyzt模块主要用来本地化有datetime库创建的日期。例如,下面这段代码告诉我们如何以上海时间来表示日期:from datetime import datetimefrom pytz import timezo原创 2020-11-10 10:56:38 · 252 阅读 · 0 评论 -
python中字符串和文本处理(很详细)
1.工作中经常会遇到各种各样的文本操作,来满足开发中的各种对数据的要求,例如拆分字符串,搜索,替换,词法分析以及解析。 2.有时有这样的需求,我们需要将字符串拆分为不同的字段,但是分割符在整个字符串中并不一致,字符串对象的split()方法只能处理非常简单的情况,而且不支持多个分割符,对分割符周围可能存在的空格也无能为原创 2020-11-08 09:51:00 · 5862 阅读 · 0 评论 -
python定时任务BlockingScheduler模块
1.flask-restplus是flask的扩展,主要是为了适应现在主流的微服务开发,封装了高效的api开发接口,很简单,容易上手2.安装flask-restplus:pip install flask-restplus3.使用:from flask import Flaskfrom flask_restplus import Apiapp = Flask(__name__)api = Api(app)@api.route('/index')class test(): d原创 2020-11-02 10:34:36 · 6469 阅读 · 0 评论 -
python中的列表
数组是整齐,有序,高效的数据结构,数组的英文名称array,是有限个相同的变量所组合成的有序集合,数组中的每一个变量称为元素。数组是最简单,最常用的数据结构。数组在内存中顺序存储。在python语言中,没有数组的概念,而是使用列表和元组这两种集合,它们本质上都是对数组的封装。列表是动态可扩展的数组,支持增删改查,而元组是不可变的集合,一旦创建就不支持修改。列表中的插入方式有三种,尾部插入方法:append(),中间插入方法:insert(),...原创 2020-09-01 14:11:06 · 150 阅读 · 0 评论 -
python中的zip方法详解
有时我们有这样的需求,想从两个列表中分别迭代元素,这时我们就可以使用python中的zip方法,事例如下:l1 = [1,2,3,4,5]l2 = ['a','b','c','d','e','f']for x,y in zip(l1,l2): print(x,y) 结果:1 a2 b3 c4 d5 e zip(a,b)方法的工作原理是创原创 2020-07-21 09:47:56 · 8129 阅读 · 0 评论 -
python计算数组元素出现的次数
有时候有些业务场景需要计算数组中元素出现的次数,或者找出出现次数最多的三个元素,怎么实现呢?python的collections模块中Counter类就能很好解决这些问题,Counter类中的most_common()方法就能计算元素出现最多次数的几个元素 费话不多说,直接上代码,程序员,用代码原创 2020-07-14 13:50:48 · 6296 阅读 · 1 评论 -
python字典根据值去排序
日常开发中我们需要对字典根据健排序或者根据字典的值排序,可以通过python的zip()方法去实现。根据健去排序:a = { 'a':1, 'b':2, 'c':3, 'd':4,}print( sorted(zip(a.keys(),a.values())))结果:[('a', 1), ('b', 2), ('c', 3), ('d', 4)]根据值去排序:a = {原创 2020-07-14 10:43:12 · 230 阅读 · 1 评论 -
python中字典一个健对应多个值
python 中字典的健和值是一一对应的,如果对字典进行添加操作时,如果健的名字相同,则当前健对应的值就会被覆盖,但是有一种场景,我们想要一个健对应多个值的场景,那怎么做呢? 字典是一种关联容器,每个健都单独映射到一个单独的值上,如果想让健映射到多个值,需要将这多个值保存到另一个容原创 2020-07-13 18:05:47 · 8957 阅读 · 0 评论 -
http服务和tcp服务的区别
一 网络的七层协议 要弄懂http,tcp/ip,udp这些协议,首先我们要了解网络的七层协议,互联网的本质是一系列的网络协议,这个协议就叫做OSI协议。就是信息在网上传递经过的7个步骤,按照功能不同分工不同,。实际上这七层是并不存在的,也就是说没有这些概念,而我们今天提到的七层概念,只是人为的划分而已。目的只是为了让大家更好地理解这些都是用来做什么的。  原创 2020-07-08 14:37:02 · 1894 阅读 · 2 评论 -
git详解
git clone … 克隆当前项目 (git clone --depth=1 … 克隆最近一个版本项目)git log 查看log日志git branch a 创建a分支(git branch -d a 删除a分支 git branch -D a .原创 2020-05-31 11:30:53 · 94 阅读 · 0 评论 -
不适合使用Mongdb的场景
尽管Mongdb是一个通用型数据库,可以用在大部分应用程序中,但它并非万能的。Mongdb不支持下面这些应用场景。MongoDB不支持事务,对事务性有要求的应用程序不建议使用Mongdb。可以用几种方式实现简单的类事务语义,尤其是操作单个文档时,但是数据库并不能强制要求用户这么做。因此,你可以让所有客户都遵守你设定的某种语义规范(比如,执行任何操作之前都要先检查锁),但是无法阻挡不知情的用户或恶意用户。在多个不同维度上对不同类型的数据进行连接,这是关系型数据库擅长的事情。Mongdb不支持这么做,以后原创 2020-05-26 17:46:05 · 464 阅读 · 0 评论 -
python PEP 8 编码风格指南
PEP 8风格指南PEP是Python Enhancement Proposal的缩写,通常翻译为“Python增强提案”。每个PEP都是⼀份为Python社区提供的指导Python往更好的⽅向发展的技术⽂档,其中的第8号增强提案(PEP 8)是针对Python语⾔编订的代码⻛格指南。尽管我们可以在保证语法没有问题的前提下随意书写Python代码,但是在实际开发中,采⽤⼀致的⻛格书写出可读性强的代码是每个专业的程序员应该做到的事情,也是每个公司的编程规范中会提出的要求,这些在多⼈协作开发⼀个项⽬(原创 2020-05-14 06:11:25 · 231 阅读 · 0 评论 -
从python列表中找到最大的或最小的N个元素
heapq模块中有两个函数,nlargest()和nsmallest()两个方法,可以分别找出最大或最小的N个数。import heapql1 = [11,22,54545,23,54,76,7343,345]print(heapq.nlargest(3,l1))print(heapq.nsmallest(4,l1))输出:[54545, 7343, 345][11, 22, 23,...原创 2020-05-08 14:19:23 · 847 阅读 · 0 评论 -
python对字典数据排序并分组
有时我们想对字典里面指定字段排序或者分组,可以使用itemgetter()方法排序,根据itertools.groupby()方法分组:下面有一组数据,我们想根据日期分组,具体操作实现如下:from itertools import groupbyfrom operator import itemgettermes = [ {'address': '北京','date': '...原创 2020-05-08 09:25:09 · 1190 阅读 · 0 评论 -
迭代器和 生成器的理解
迭代器:实现了迭代协议的对象就叫迭代器迭代器协议是两个魔术方法:__iter__:返回迭代器对象__next__:从迭代器对象中如何迭代出下一个值class Countdown: def __init__(self,num): self.num = num def __iter__(self): return self def...原创 2020-04-22 09:26:11 · 118 阅读 · 0 评论 -
通过 asyncio模块实现异步编程,实现协作式并发
我们先来看个例子:import timedef print_num(num): time.sleep(1) print(num)for num in range(10): print_num(num) 我们先定义一个普通函数,每隔一秒打印num,然后循环调用函数,那么执行完这个循环需要花费...原创 2020-04-21 16:18:03 · 200 阅读 · 0 评论