![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 60
Thomas_Lean
这里只记录总结技术经验,有任何错误尽管提出哈
展开
-
解决Python字符串拼接原生SQL,带单双引号或者斜杠出错的问题
1.如果是单双引号,不需要保留的情况下可以直接替换成空。以上就是由于在字符串拼接时单引号被转义导致的问题。2.特殊字符或者斜杠。原创 2023-02-23 14:19:52 · 2272 阅读 · 1 评论 -
10 个 Python 脚本来自动化你的日常任务(转)
好文转载转载 2023-02-03 16:33:42 · 800 阅读 · 0 评论 -
CentOS修改主机名、主机密码
查看主机名以下列出几种查看主机名的方式://查看一下当前主机名的情况,查看全部三种主机名[root@docker ~]# hostnamectl Static hostname: docke //或者,查看全部三种主机名[root@docker ~]# hostnamectl status Static hostname: docker //只查看静态、瞬态或灵活主机名,分别使用--static,--transient或--pretty选项[root@docker ~]# h原创 2021-08-12 09:27:00 · 1269 阅读 · 0 评论 -
Python利用opencv给图片加水印
给图片加水印有时候为了注明出处或者版权问题,需要在图片或者视频加上水印,今天先讲怎么给图片加水印!安装opencv库注意不是这样安装:pip install opencv以上安装方式会提示错误:Collecting opencv Could not find a version that satisfies the requirement opencv (from versions: )No matching distribution found for opencv正确安装如下:原创 2021-07-05 14:33:07 · 546 阅读 · 0 评论 -
企业微信webhook使用
用企业微信作为公司办公软件的公司有需要如果需要监控或者定时提醒业务就可以使用企业微信自带的机器人工具作为消息的发起者!添加机器创建一个至少3个人的群聊。如果只是为了加机器人可以先拉人进群随后将其他人剔除即可,这个设计还是有点鸡肋啊,如果我就想给自己通知消息暂时都采取这种方式。添加完群聊就可以在群设置里面添加机器人,设置完成后即可看到机器人,如果想让机器人发消息,只需要post请求机器人的webhook地址。发送消息也可以打开机器人里面也有相关demo实例。import requestsimpo原创 2021-06-23 16:06:56 · 11507 阅读 · 0 评论 -
Python重构 - 第4部分
编写干净的 Python 代码就是要使其尽可能易于理解且简洁。后期便于维护,代码约简洁越好维护,bug就越好排查。将重复的代码提取到一个方法中不要重复自己 (DRY) 是编写干净、可维护代码的重要原则。重复的代码使代码库膨胀,使其更难阅读和理解。它也经常导致错误。如果仅在某些重复区域中进行更改,则经常会出现意外行为。消除重复的主要方法之一是将公共区域提取到另一种方法中并调用它。def extraction_example(): self.speed_slider = Scale(原创 2021-06-23 15:53:36 · 176 阅读 · 0 评论 -
Python重构 - 第3部分
编写干净的 Python 代码就是要使其尽可能易于理解且简洁。后期便于维护,代码约简洁越好维护,bug就越好排查。使用 str.join() 而不是 for 循环在 Python 中连接字符串最直接的方法是使用+ 运算符:hat_description = hat.colour + hat.type当您将少量字符串连接在一起时,这非常好(尽管 f 字符串是处理更复杂字符串的最佳选择)。当它们用于连接大型字符串列表时,就会出现使用+or的问题+=。例如,您可以像这样在 for 循环中使用它们:a原创 2021-06-15 16:47:33 · 147 阅读 · 0 评论 -
Python格式化时间 - locale使用
之前在爬取后跨境电商平台的数据时,采集的时间需要进行数据清洗,但是由于时间格式多样性,就需要采用修改时区的方式对时间进行格式化处理!常见的格式如下:美国时区:June 11, 2021德国时区:19. Dezember 2020英国时区:05 March 2021除了以上三种格式还会有其他时间格式!设置时区如果在设置时区过程中出现以下错误:>>> import locale>>> locale.setlocale(locale.LC_ALL,原创 2021-06-11 16:03:15 · 807 阅读 · 3 评论 -
Python重构 - 第2部分
编写干净的 Python 代码就是要使其尽可能易于理解且简洁。后期便于维护,代码约简洁越好维护,bug就越好排查。'with’打开文件时使用以确保关闭在 Python 中打开和使用文件的常用方法是:file = open("welcome.txt")data = file.read()print(data)file.close() # 这里一定要close但是,如果在打开和关闭文件之间抛出异常,则最终可能会跳过对 file.close() 的调用。解决此问题的一种方法是使用这样的代码。这里的原创 2021-06-09 13:57:22 · 310 阅读 · 3 评论 -
通过Flask的request对象获取url
flask开发过程中,有时候需要获取当前请求url的相关数据,那么可以用以下方式获取url!!flask测试请求地址:http://127.0.0.1:5000/main/index?page=10实例如下:from flask import request@main.route('/main/index', methods=['GET', 'POST'])@login_requireddef index(): host_url = request.host_urlrequest更多方法:原创 2021-06-01 11:34:58 · 4605 阅读 · 0 评论 -
datetime时间模块相关用法
https://docs.python.org/zh-cn/3/library/datetime.html#date-objectsdate用法一datetime.date(year, month, day)正确实例:>>> from datetime import date>>> date(2020,9,4)datetime.date(2020, 9, 4)错误实例:>>> date(2020,09,04) File "&原创 2021-04-27 16:24:16 · 903 阅读 · 0 评论 -
docker 打包项目后无法链接redis
首先需要安装redis,使用docker安装redis教程如下:1.查找可用版本docker search redis2.拉取镜像docker pull redis:latest3.查看镜像docker images4.安装镜容器docker run -itd --name redis-test -p 6379:6379 redis说明:-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服原创 2021-04-09 09:52:02 · 1177 阅读 · 0 评论 -
python 解决mysql where in 对列表(list,,array)问题
其实在很多实际开发中都会用到where xxx in (list)的查询语句进行数据查询,一般接口传参为了方便都会直接传递数组,那么该如何快捷的格式化sql语句呢实例:SELECT * FROM test where status='SUCESS' and operator_id in ('5122','5123');前台传给过来的参数:{ "status": "SUCESS", "operator_id": ['5122','5123']}格式化:filter_ret = ','.j原创 2021-04-08 16:36:26 · 2125 阅读 · 0 评论 -
Nginx停止服务和各种命令
1.停止Nginx服务的四种方法从容停止服务这种方法较stop相比就比较温和一些了,需要进程完成当前工作后再停止。nginx -s quit立即停止服务这种方法比较强硬,无论进程是否在工作,都直接停止进程。nginx -s stopsystemctl 停止systemctl属于Linux命令systemctl stop nginx.servicekillall 方法杀死进程直接杀死进程,在上面无效的情况下使用,态度强硬,简单粗暴!killall nginx2转载 2021-04-07 11:28:27 · 741 阅读 · 0 评论 -
python调用JS方法实例
安装插件pip install pyexecjs直接安装可能会出错:C:\Users\Administrator>pip install execjsCollecting execjs Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY原创 2021-02-26 14:50:16 · 448 阅读 · 2 评论 -
LInux设置系统时间
查看时间date -R设置时间:date -s "17:20:30"把时间写入系统hwclock -w原创 2021-02-05 17:33:45 · 392 阅读 · 0 评论 -
python flask项目配置以及动态注册蓝图
已经挺久没做flask开发了,现在主要为了给大家分享一些关于之前flask项目开发的经验总结,希望对大家有所帮助!flask启动项目里的初始化文件一般包括,初始化app,初始化配置config,注册蓝图等步骤!最中规中矩的方式就是每次新增一个新的模块就在初始化文件中手动加两行代码用于蓝图的注册!项目配置文件config.py:其中SECRET_KEY一定要设置,且最好为随机数,可以防止csrf,不然会出现 Must provide secret_key to use csrf 错误提醒!# -*-原创 2021-01-25 14:45:49 · 1902 阅读 · 1 评论 -
selenium自动化加载chrome插件
安装插件访问google插件商店: 点击此处前往最好网络可访问google,否则可能打不开!查看安装路径1.在浏览器输入:chrome://extensions/ 可查看已经安装的插件,如下图:2.在浏览器输入:chrome://version 查看插件在本地的安装路径,如下图:实例from selenium.webdriver.chrome.options import Optionsfrom selenium import webdriverfrom selenium.webdr原创 2021-01-13 10:25:59 · 7607 阅读 · 2 评论 -
基于docker安装phpmyadmin竟如此简单
前提条件任意Linux系统且已成功安装docker环境安装phpmyadmin1.拉取镜像docker pull phpmyadmin如果由于网络原因导致无法成功拉取,可以先配置dokcer镜像源,也可以在国内网站先下载好镜像的压缩包,然后导入也可以!配置镜像源:Docker中国区官方镜像:https://registry.docker-cn.com网易:http://hub-mirror.c.163.comustc:https://docker.mirrors.ustc.edu.原创 2020-12-24 11:30:44 · 6939 阅读 · 0 评论 -
实测docker安装、打包镜像、上传到docker远程仓库
先决条件:在linux下实现安装好docker环境1.在centOS下部署一个简单的flask项目文件start.py,如下:项目目录:/home/www/testfrom flask import Flaskapp = Flask(__name__)@app.route('/')def test(): return 'This is Flask!'if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)原创 2020-12-17 17:30:42 · 3991 阅读 · 0 评论 -
轻松搞定python多线程和多进程
本文转自出自:作者:what is fantasy链接: https://www.cnblogs.com/whatisfantasy/p/6440585.html 1 概念梳理:1.1 线程1.1.1 什么是线程线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一个线程是一个execution context(执行上下文),即一个cpu执行时所需要的一串转载 2020-12-16 15:44:51 · 412 阅读 · 0 评论 -
Python重构 - 第1部分
有时候回头看自己之前写的代码,觉得真的是不堪入目啊,哈哈哈,各种if嵌套,for循环一层又一层,代码过于冗长,代码看起来既不美观,又没啥可读性,甚至还影响运行速度。所以对于编写简洁、易于理解、可读性好的程序还是很有必要的,接下来总结一些常见的重构方法,希望借此自己总结一下经验,也顺便给大家分享一下!一、遇到多个if条件判断太多的嵌套会使代码难以理解,在Python中尤其如此,因为Python中没有括号来帮助描述不同的嵌套级别。阅读深层嵌套的代码令人困惑,因为您必须跟踪哪些条件与哪些级别相关。因此,我原创 2020-12-09 15:58:52 · 656 阅读 · 2 评论 -
两种快速查询主机公网IP的方法
有时候想查看自己主机的ip,一种方式是用控制台命令查询,另一种则可以在主机下访问某链接即可查询ip!方式一:命令查询linux系统:ifconfig如下图:windows系统:ipconfig如下图:方式二:访问链接查询有以下几个链接均提供返回ip地址的服务:http://ip.42.pl/rawhttps://ifconfig.me/iphttp://jsonip.comhttp://httpbin.org/iphttps://api.ipify.org/?forma原创 2020-12-08 11:14:50 · 16517 阅读 · 0 评论 -
5个python重构技巧以改进您的代码
[导语] 重构是在不更改代码功能的情况下提高代码质量的过程。在提交代码之前花一些时间来重构代码可以使代码更具可读性,从而更易于维护。持续执行此操作会发现错误,并从噩梦般的地狱场景添加新功能到公园散步。理想情况下,单元测试将完全覆盖您的代码,使您可以放心地进行更改。如果不是,那么应该尽可能在重构之前添加测试。但是,如果您无法添加测试,则仍然可以通过使用自动化,安全的重构工具来实现很多目标。那么从哪里开始呢?本文包含5件简单的事情,您可以立即做,以使您的代码更易读,更美观。一、删除注释掉的代码这是最翻译 2020-12-07 17:43:36 · 1699 阅读 · 0 评论 -
成功解决pandas报AttributeError: DataFrame object has no attribute ix错误
在实际操作中有时候需要把采集的数据或者分析完的数据保存为excel中,列名按照执行排序,一开始我采用DataFrame的ix方式去实现是可以达到预期的,不过最近发现好像该方法函数被移除了,运行会抛出以下错误:Traceback (most recent call last): File "check_token.py", line 149, in <module> AdAccountManager(manage_log, path).refresh() File "check_原创 2020-10-26 11:01:26 · 24412 阅读 · 0 评论 -
Python爬虫之代理问题
对于从事爬虫的程序猿来说,反爬策略是必不可少的,其中添加请求头就是反爬的一种最为简单的策略。还有就是使用代理ip,说白了就是采集数据时采用不同的ip去访问你要采集数据的网址,可能很多人都会问为什么我需要用代理呢?不用不可以吗?用了代理之后发现爬虫抓取数据的速度反而下降了不少于是放弃爬虫代理的使用。当你抓取的数据达到一定量后,或者大批量采集时,你会发现程序会时不时给你报错,而且频率越来越来高。这说你的爬虫被人家识别出来了,对方的反扒系统已经记住了你。通常会告诉你连接超时、连接中断更有甚者不会直接中断你程序,它原创 2020-10-15 09:37:20 · 1286 阅读 · 0 评论 -
解决数据库unicode编码导致字符串读取问题
数据库设置编码为:utf8mb4_unicode_ci在业务上用数据库已经存储带空格的字符去对比真实输入带有空格的字符串数据,就会遇到表面上看过去一模一样,经过程序对比却是返回False例子:数据库可视化查询结果如下:用程序查询出来的结果:>>> data[('Free\xa0Pray')]这显然无法正常匹配的上,用unicodedata库即可解决该问题。解决方案:new_str = unicodedata.normalize("NFKD", unicode_str)原创 2020-09-04 16:00:56 · 958 阅读 · 0 评论 -
Facebook 应用开发认证和授权登录流程
前段时间由于工作需要,对fb授权登陆并获取对应的访问令牌(access_token),即授权登陆!调研了facebook应用开发相关事项,阅读官方API文档, 并整理资料与大家分享。本文是关于facebook认证和授权方面的资料整理,结合自己的实际测试总结该文章,希望对大家有所帮助!Facebook 平台使用OAuth2 协议作为认证和授权协议,它有两种认证流程,服务器端流程(Server-Sizde Flow)和客户端流程(Client-Side Flow), 这些认证流程可被用于开发网站应用,移动应用原创 2020-07-30 09:15:37 · 9061 阅读 · 2 评论 -
Python使用logging模块实现日志记录实例
logging模块简介logging模块是Python的一个标准库模块,开发过程中,可以通过该模块,灵活的完成日志的记录。logging模块提供了两种记录日志的方式:1)使用logging提供的模块级别的函数(logging.basicConfig,logging.debug,logging.info…)2)使用logging模块的组件(loggers,handlers,filters,formatters)Python logging日志级别表 1 Python logging日志级别原创 2020-07-29 14:34:15 · 1206 阅读 · 1 评论 -
python实现词频统计并展示
一篇文章如何可以快速锁定核心内容,可以初步用文章中出现频次最高的词语作为文章的核心。那有什么办法快速展示呢?下面就以一篇AI人工智能的文章作为测试文件,测试结果如图:1、想要实现该效果,首先需要先安装好python,然后还需要在自己的电脑安装以下几个插件:pip install re # 正则表达式库pip install collections # 词频统计库pip install numpy # numpy数据处理库pip install jieba # 结巴分词pip instal原创 2020-07-07 09:24:44 · 4116 阅读 · 0 评论 -
Python之字符串格式化
有时候在实际开发当中,需要执行原生sql语句或者想打印某些带变量参数的字符串,那么就需要对字符串进行格式化处理!字符串格式化的种类‘+’ 加法拼接方式% 格式符方式format 方式f 方式1、加法拼接>>> name = 'Thomas'>>> data = 'My name is ' + name>>> data'My name is Thomas'2、% 格式符方式%s :占位符 str()%d :十进制 整数%原创 2020-07-03 14:32:30 · 471 阅读 · 0 评论 -
Cookie,Session,Token三者区别
一、简介1. Cookie机制cookie机制是采用在客户端保持状态的方案.cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。cookie的内容主要包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就原创 2020-06-22 09:52:49 · 595 阅读 · 0 评论 -
python 学习笔记(下)
1、分别从前端、后端、数据库阐述web项目的性能优化前端优化:1、减少http请求、例如制作精灵图2、html和CSS放在页面上部,javascript放在页面下面,因为js加载比HTML和Css加载慢,所以要优先加载html和css,以防页面显示不全,性能差,也影响用户体验差##### 后端优化: 1、缓存存储读写次数高,变化少的数据,比如网站首页的信息、商品的信息等。应用程序读取数据...原创 2020-06-09 09:15:31 · 326 阅读 · 0 评论 -
python 学习笔记(上)
1、利用collections库的Counter方法统计字符串每个单词出现的次数>>> from collections import Counter>>> f=Counter(d)>>> fCounter({'l': 9, ';': 6, 'h': 6, 'f': 5, 'a': 4, 'j': 3, 'd': 3, 's': 2, ...原创 2020-06-09 09:10:52 · 532 阅读 · 0 评论 -
通过Cloudflare开启全站https
通过Cloudflare开启全站httpsCloudflare添加域名后,会自动生成通用证书,快速开启全站HTTPS,服务端不用做任何修改,还可以选择多种开启模式注册Cloudflare账号注册地址:https://www.cloudflare.com注册完并登录,然后添加域名,如下图并选择套餐类型,一般选择免费的就可以了:修改DNS以下以自己购买的域名为准,去域名管理后台修改DNS,免费套餐只能通过DNS方式配置Cloudflare,收费套餐或Partner,可以通过CNAME配置,首原创 2020-06-08 11:16:02 · 5471 阅读 · 0 评论 -
Nginx配置上传文件大小限制
之前基于Flask web开发Nginx做反向代理需要用户上传较大的文件到服务器进行运算,一开始数据量较小的文件上传是没什么问题,一旦文件稍微大一点点,就无法上传,会直接报错。原因很简单,就是nginx配置的问题,只要在配置中添加一个 client_max_body_size 配置即可。具体操作如下:先找到配置文件nginx.confroot@ubuntu:/etc# locate ng...原创 2020-05-19 09:45:02 · 6628 阅读 · 0 评论 -
python爬虫采集反爬策略
一、爬虫与反爬简介爬虫就是我们利用某种程序代替人工批量读取、获取网站上的资料信息。而反爬则是跟爬虫的对立面,是竭尽全力阻止非人为的采集网站信息,二者相生相克,水火不容,到目前为止大部分的网站都还是可以轻易的爬取资料信息。爬虫想要绕过被反的策略就是尽可能的让服务器人你不是机器程序,所以在程序中就要把自己伪装成浏览器访问网站,这可以极大程度降低被反的概率,那如何做到伪装浏览器呢?##### 1....原创 2020-05-19 09:31:24 · 2639 阅读 · 1 评论 -
Pandas之入门小案例
刚好现在做测试的同事需要实现一个小功能,就是事先创建一个只有表头的excel表,后面需要传入一个列表,并判断是否存在表头中,如果存在则在该列下面标注’OK’,不存在则标记’X’!很简单的例子。安装pip install pandas==1.0.0原本表格:处理后表格:读取excel文件data = pd.read_excel(path, sheet_name=False, index=False)由于一开始所有列除了标题均为空,所以需要给各列赋空列表:header = set(dat原创 2020-05-15 17:11:04 · 1151 阅读 · 0 评论 -
安装Pandas报ImportError: DLL load failed: 找不到指定的模块的错误
安装命令:pip install pandasC:\Users\user>pip install pandasCollecting pandas Using cached https://files.pythonhosted.org/packages/d2/81/a1514c993ad8261a2053f356c3ea9a6ad41871a09a8ef9cf46789e371a63/pandas-1.0.3-cp36-cp36m-win_amd64.whlCollecting numpy&原创 2020-05-14 14:38:49 · 6801 阅读 · 5 评论 -
浅谈fastAPI框架及其实例讲解
技术背景:Py3.6+,Starlette,Pydantic安装插件fastapipip install fastapi安装启动插件pip install uvicorn简单实例在根目录创建项目文件main.py:from fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"我的第一个FastAPI": "Hello World!"}@app.get("/test/原创 2020-05-14 11:29:45 · 6806 阅读 · 0 评论