![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 73
Carry.lili
为之则易,不为则难。
展开
-
WebSocket协议和Socket.IO框架
一、WebSocket介绍:1,WebSocket是什么?WebSocket是一种在单个TCP连接上进行全双工通信的协议。在WebSocket API中,浏览器和服务器只需要完成一次握手(不是指建立TCP连接的那个三次握手,是指在建立TCP连接后传输一次握手数据),两者之间就直接可以创建持久性的连接,并进行双向数据传输。WebSocket是H5新增的一重通信协议,为了更好的节省服务器资源和带...原创 2019-08-26 15:25:42 · 478 阅读 · 0 评论 -
精读Elasticsearch
Elasticsearch是什么?Elasticsearch它是遵循 restful API风格、高扩展、高可用、实时监测数据的一个搜索引擎。基于lucene全文检索架构,是由java开发的。restful风格:可以采用http的请求方式,实现数据的增删改查。高扩展:它本身就是 一个集群,添加节点非常简单,无需配置集群,Elasticsearch 会自动的在各节点中迁移分片,使得数据仍然均匀...原创 2019-08-29 20:53:50 · 120 阅读 · 0 评论 -
Elasticsearch | 集群Cluster | 分片Shards
相关介绍:Cluster:代表一个集群,包含多个节点,在集群内部,会通过选举选出一个主节点。在外部看es集群,是没有中心节点的,也就是去中心化。意思就是:逻辑上大家都是一个整体,你与任何一个节点通信和与整个es集群通信是等价的。主节点只负责集群的相关状态信息(节点状态和副本状态),不负责对数据的增删改查。集群的查看状态如下:http://127.0.0.1:9200/_cluste...原创 2019-08-29 20:57:11 · 362 阅读 · 0 评论 -
认识Docker 以及容器镜像的基本操作
认识Docker?Docker是一个开源的容器引擎,它基于LXC容器技术,使用Go语言开发。源代码托管在Github上,并遵从Apache2.0协议。Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker是开发,运行和部署应用程序的开放管理平台.开发人员能利用docker开发和运行应用程序, 运维人员能利用docker部署和管理应用程序。...原创 2019-08-29 21:02:40 · 229 阅读 · 0 评论 -
定时任务APScheduler,随时保持数据同步
1,APScheduler是什么?APScheduler (advanceded python scheduler)是一款Python开发的定时任务工具。用户指南 https://apscheduler.readthedocs.io/en/latest/userguide.html#starting-the-schedulerAPScheduler有四种组件:调度器Scheduler、执行器...原创 2019-08-29 21:05:42 · 1032 阅读 · 0 评论 -
定时任务crontab静态化页面
1,为什么要页面静态化?首页是用户浏览最多的,不能每次都要查询数据库,采用静态化减轻数据库压力查询速度快,用户体验感比较好2,为什么要添加定时任务?对于首页的静态化,考虑到页面的数据可能由多名运营人员维护,并且经常变动,所以将其做成定时任务.在Django执行定时任务,可以通过django-crontab扩展实现。django-crontab使用流程:1,安装pip ins...原创 2019-08-29 21:07:00 · 245 阅读 · 0 评论 -
Celery解决耗时问题,发短信不尴尬
1,Celery是什么?消息队列,用于存放任务,专注于实时处理问题。2,Celery有什么用?主要解决耗时问题。包含的三个主体:borker用于存放任务,worker属于工人、消费者,result用于存放结果。3,Celery的优点?耦合性低,相当与一个第三方插件,使用方便4,项目中如何体现?用于异步发送短信、发邮件、图片上传等一些耗时问题使用流程:1,安装:pip insta...原创 2019-08-29 21:10:19 · 328 阅读 · 0 评论 -
关于RabbitMQ,你知道多少?
1. RabbitMQ介绍是消息队列,相当与redis,可以形容成一个在传输的过程中保存消息的容器。现在主流消息队列有:RabbitMQ、ActiveMQ、Kafka等等,下面一张图分别介绍它们。2,RabbitMQ使用:2.1:由于 RabbitMQ 是采用 Erlang 编写的,所以需要安装 Erlang 语言库。# 1. 在系统中加入 erlang apt 仓库wg...原创 2019-08-29 21:12:52 · 104 阅读 · 0 评论 -
第三方登录的套路,你get到了吗?
前言:第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目。登录环节中很常见的第三方登录,如QQ、微信、支付宝、新浪微博等。第三方登录具有显著的便捷和高效特点,极大地方便了用户的操作使用,但相应的也会有局限性,好吧,一起来看下吧~1,使用第三方登录优点:基于用户而言:1.方便用户使用第三方账号快捷登录,简化注册过程;2.不必费尽心思地记住账户密码,可...原创 2019-08-29 21:15:36 · 396 阅读 · 0 评论 -
详解TCP和UDP的区别?教你快速理解三次握手和四次挥手!
前言:之前我们有了解IP地址和端口号,通过IP地址能够找到对应的设备,然后再通过端口号找到对应的端口,再通过端口把数据传输给应用程序,这里要注意,数据不能随便发送,在发送之前还需要选择一个对应的传输协议,保证程序之间按照指定的传输规则进行数据的通信,而这个传输协议就是我今天要分享的内容。要想理解 TCP 和 UDP 的区别,首先要明白什么是 TCP?什么是 UDP?1,UDP介绍UDP 是...原创 2019-08-29 21:18:46 · 1136 阅读 · 0 评论 -
Django | Authentication | 默认用户认证系统
前言:Django自带一个用户认证系统,用于处理用户账户、群组、许可和基于cookie的用户会话。一、django默认的用户认证系统1,Django的认证系统包含了身份验证和权限管理两部分。认证:验证一个用户是否它声称的那个人,可用于账号登录。授权:授权决定一个通过了认证的用户被允许做什么。2,Django认证系统位置django.contrib.auth 包含认证框架的核心和...原创 2019-08-29 21:22:16 · 963 阅读 · 0 评论 -
Nginx部署
Nginx是什么?Nginx(发音同 engine x)是一款基于异步框架的轻量级/高性能的Web 服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·赛索耶夫)所开发,最初供俄国大型网站Rambler.ru及搜寻引擎Rambler使用。Nginx优点:高并发量:基于 epo...原创 2019-08-30 10:53:52 · 124 阅读 · 0 评论 -
python-selenium安装与驱动
1.终端输入命令pip3 install selenium2.下载exec驱动器(浏览器输入淘宝镜像)3.压缩后,把chromedriver驱动移至/user/local/bin目录下4.终端输入chromedriver,看到以下文字说明安装成功...原创 2020-03-04 22:21:01 · 162 阅读 · 0 评论 -
python基础面试题分享
Python新手在谋求一份Python编程工作前,必须熟知Python的基础知识。编程网站DataFlair的技术团队分享了一份2018年最常见Python面试题合集,既有基本的Python面试题,也有高阶版试题来指导你准备面试,试题均附有答案。面试题内容包括编码、数据结构、脚本撰写等话题。本文为上篇。1:Python有哪些特点和优点?作为一门编程入门语言,Python主要有以下特点和优点:...原创 2019-09-04 11:48:23 · 780 阅读 · 0 评论 -
Python | 浅拷贝 | 深拷贝
前言在实际项目中,我们想修改a的数据,同时又不想影响b的数据时 ,就需要用到拷贝。拷贝分为浅拷贝和深拷贝。接下来,我主要以代码和图片的方式来解析它们两者之间的区别。浅拷贝:( copy.copy() )"""可变类型:单层列表"""import copya = [10, 20]b = copy.copy(a)print(a)print(b) # a,b值一致...原创 2019-08-29 21:51:13 · 100 阅读 · 0 评论 -
Python | 内存管理机制
前言:关于python的内存管理机制,我们可以从以下三个方面来解析:引用计数垃圾回收(标记清除、分代回收)小整数对象池1,引用计数:1.1引用计数增加的情况:创建一个对象,例例如:a = ‘carry’,引⽤用计数 1。赋值 b=a, 引⽤用计数加1浅拷⻉里的引用,函数的传参foo(x)等作为容器对象的一个元素:a=[1,x,’22’]1.2引用计数减少的...原创 2019-08-29 21:48:11 · 108 阅读 · 0 评论 -
Python | Mysql | 事务 | 索引
前言:事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元。事务的使用场景:在日常生活中,有时我们需要进行银行转账,这个银行转账操作背后就是需要执行多个SQL语句,假如这些SQL执行到一半突然停电了,那么就会导致这个功能只完成了一半,这种情况是不允许出现,要想解决这个问题就需要通过事务来完成。接下来,我就以银行转账为例进...原创 2019-08-29 21:36:38 · 172 阅读 · 0 评论 -
Python | Mysql | 数据库操作命令大全
前言:数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加、修改、删除、查询等操作。数据库分为:关系型数据库、非关系型数据库 (今天主分享mysql)关系型数据库 :是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,好比Excel文件中的表格,强调使用表格的方式存储数据。关于库和表的命令如下:关于库的命令:创建: cr...原创 2019-08-29 21:33:42 · 196 阅读 · 0 评论 -
Python | MySQL | 查询汇总
前言:承接上篇数据库基础增删改查操作。文章以students表为例1,查询练习:select * from students ;select 表别名.字段 .... from 表名 as 表别名;#例:可以给表起别名,查询表的name字段select s.name from students as s; distinct 字段 去重 #例:性别去重 select dist...原创 2019-08-29 21:28:41 · 334 阅读 · 0 评论 -
Mac Python3.7创建虚拟环境
1、安装virtualenvsudo pip3 install virtualenv2、安装virtualenvwrappersudo pip3 install virtualenvwrapper2.1如果此步骤出以下错,可执行下面3条命令(重要第一条)sudo pip3 install-i https://pypi.tuna.tsinghua.edu.cn/simple pbrsudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/s原创 2020-06-22 20:09:03 · 992 阅读 · 0 评论 -
python+selenium元素定位7----css定位
web自动化 | selenium | 元素定位7----css定位1、语法与注意事项语法:driver.find_element_by_css_selector("属性")id 选择器: #属性名class选择器: .属性名标签 选择器: 标签名属性 选择器: [属性名 = ’属性值’]后代 选择器 element1 element2其他方法:属性值以 xxx开头:标签名[属性名^ = ’属性值‘]属性值以 xxx结尾:标签名[属性名$ = ’原创 2020-05-27 22:26:20 · 274 阅读 · 0 评论 -
python+selenium元素定位6----xpath定位
web自动化 | selenium | 元素定位6----xpath定位1、语法与注意事项语法:driver.find_element_by_xpath("xpath表达式")xpath表达式:1、绝对路径---繁琐,不建议使用2、可以使用相对路径。从任何一个节点都行3、使用通配符* //*[@属性名= ’属性值’]4、也可以多个属性一起定位 //*[@属性1= “属性值1” and @属性名2 = ’属性值2’]5、层级选择器 //*[@属性名=“”属性值]/属性2 其他方法:1原创 2020-05-27 22:24:13 · 536 阅读 · 0 评论 -
python+selenium元素定位5--link_text定位
web自动化 | selenium | 元素定位5----link_text定位1、语法与注意事项语法:driver.find_element_by_link_text("超链接的全部文本类容")注意:参数一定是超链接的全部文本,包含空格和字符2、看图举例(1、匹配所有超链接所有文本。2、匹配部分文本):import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get("https://ww原创 2020-05-27 22:20:45 · 1299 阅读 · 0 评论 -
python+selenium元素定位4--tag_name定位
web自动化 | selenium | 元素定位4----tag_name定位1、语法与注意事项语法:driver.find_element_by_tag_name("元素的标签名")注意:html页面中肯定存在多个相同的标签名,如果使用标签定位,一般默认第一个标签(如下图,共11个input标签)2、看图举例:import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get("https:原创 2020-05-27 22:15:59 · 2157 阅读 · 0 评论 -
python+selenium元素定位3--class定位
web自动化 | selenium | 元素定位3----class定位1、语法与注意事项语法: driver.find_element_by_class_name("元素的class属性的其中一个类名")注意: class可能包含多个类名由空格分割,一定要选唯一的属性值 定位的时候选取其中一个有代表的即可,而xpath定位使用class时,要选取所有class中的内容原创 2020-05-27 22:12:34 · 4446 阅读 · 0 评论 -
python+selenium元素定位2--name定位
web自动化 | selenium | 元素定位2----name定位1、语法与注意事项语法: driver.find_element_by_name("name属性值”)注意: 标签中要有name属性,而且name唯一,优先级低于id. 如果界面有多个name属性,那么,默认选择第一个2、看图举例:import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get("http://www原创 2020-05-27 22:09:30 · 664 阅读 · 0 评论 -
python+selenium元素定位1--ID定位
web自动化 | selenium | 元素定位1----ID定位1、语法与注意事项语法: driver = find_element_by_id(’id的属性值’)注意: 确保id唯一性2、以定位百度首页元素为例from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://www.baidu.com")try: # 定位id元素,在输入框 输入python,如果定位的id不存在,则原创 2020-05-27 22:00:48 · 730 阅读 · 0 评论