Python
Python
Effortzjw
这个作者很懒,什么都没留下…
展开
-
Python Tornado接口如何获取用户的真实ip
【代码】Python Tornado接口如何获取用户的真实ip。原创 2023-02-11 13:19:41 · 517 阅读 · 0 评论 -
Python 批量汉字转五笔,Word输出为Excel
Python 批量汉字转五笔,Word输出为Excel原创 2022-07-05 22:56:58 · 1298 阅读 · 0 评论 -
【Python办公自动化】教你20行代码,俘获女朋友芳心,基于Python openpyxl、docxtpl批量将excel数据转换为word文件
业务背景:女朋友最近因为一个事情经常加班到很晚,我了解一下情况后,原来是因为一个word需要一直从excel里所有数据复制粘贴复制粘贴,最后打印出来(如下图格式,数据实际更多),由于数据量庞大,女朋友1个小时,2个小时,3个小时,工作到了深夜……思路:通过Python openpyxl操作excel,获取excel中的数据,再通过Pythondocxtpl的DocxTemplate遍历将数据渲染到word中,然后保存Python DocxTemplate基本常用语法:1、数据渲染:原创 2021-07-09 11:13:34 · 1693 阅读 · 14 评论 -
Python request判断请求状态(404、502、200等)
import requestsimport randomuser_agents = ['Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',原创 2021-04-21 11:19:48 · 6054 阅读 · 1 评论 -
【报错】Flask-Apschedul Timezone offset does not match system offset: 0 != 28800. Please, check your
flask-apscheduler 是一款 flask 的定时任务框架,其本质上是和 apscheduler 一样的,具体的使用操作和其他的 flask 组件一样。在开发环境上定时任务跑起来很顺利,但是到了生产环境却出现了bug。bug:ValueError: Timezone offset does not match system offset: 0 != 28800. Please, check your config files.意思是说我的运行的时区和系统时区不匹配flask-ap.原创 2021-03-05 10:22:06 · 4428 阅读 · 4 评论 -
Python判断某个文件夹是否存在 不在则生成
判断目录是否存在,不在则创建import osdirs = '/www/wwwroot'if not os.path.exists(dirs): os.makedirs(dirs)原创 2021-02-25 19:25:12 · 139 阅读 · 0 评论 -
基于Python APScheduler实现定时任务
一、介绍APScheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。二、安装pip3 install apscheduler三、基本概念APScheduler四大组件:触发器 triggers :用于设定触发任务的条件 任务储存器 job stores原创 2021-02-23 17:11:55 · 1511 阅读 · 4 评论 -
【报错】安装scrapy时Could not build wheels for cryptography which use PEP 517 and cannot be installed direc
问题:Windows在安装scrapy时候报错error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/Failed building wheel for cryptographyRunning setup.py clean for crypto原创 2020-12-25 15:34:59 · 2134 阅读 · 0 评论 -
【Python3报错】TypeError: string indices must be integers
【Python3报错】TypeError: string indices must be integers原因: str类型没有 str['name'] 这种写法,只有 str[0] 这种写法,所以我只需eval(arr[0]),将str类型转换成dict类型即可print(arr[0]) #这边打印出来是 {‘name’:'张三'}print(type(arr[0])) #这边打印出来是str类型print(arr[0]['name']) ...原创 2020-10-27 16:52:11 · 1314 阅读 · 0 评论 -
【报错】python3.7报错:ModuleNotFoundError:No module named “Crypto“
在使用python的第三方库Crypto时:from Crypto.PublicKey import RSA报了以下错误:ModuleNotFoundError:No module named "Crypto"首先想到的是安装第三方库Cryptopip install crypto安装成功了,可是Crypto下面依旧是红色波浪线1、网上无法解决问题的方案(1)找到安装地址,将名为“crypto”的文件夹,重命名为“Crypto”,结果:Crypto下面不再有红色波浪线,可是Cipher下原创 2020-10-27 11:39:03 · 2694 阅读 · 8 评论 -
【优化】Python pandas + redis 处理900w数据量导出excel,效率整整提升10倍!!
问题:今天,在对一个excel进行导出操作的时候,遇到了 Out of Memory 内存不足,导致整个网页崩溃的问题。于是我度娘一通。对电脑的虚拟内存调高了一通,但是发现并没有效果。难道真的要通过加内存条的方法来解决?当然这是一种方法,但是对于以后数据量越来越大的情况下,内存条就一直往上加吗,那显然是不可取的。那么就只能对代码进行优化了。后来我发现,之前导出excel的形式,是通过后端将所有的900w数据全部返回到前端,前端再将数据进行缓存,通过layui excel模块进行导出。在数据量足够大原创 2020-10-23 21:26:00 · 2887 阅读 · 2 评论 -
Python3 redis默认返回是byte类型的问题
在python3中redis读取数据默认返回byte类型,假如是中文数据,则需要 .decode('utf-8') 转换,那怎么更方便读取直接是utf-8格式呢?设置decode_responses=True即可import redisrdb = redis.Redis(host='localhost',port=6379,db=0,decode_responses=True)...原创 2020-10-22 17:21:59 · 532 阅读 · 0 评论 -
【报错】Python Flask项目启动时候报:urls must start with a leading slash
源代码:@app.route('index',methods=['POST'])def calChanzhi_stage_search(): return json.dumps({"code": 200, "msg":"测试"}, indent=4, sort_keys=True, default=str, ensure_ascii=False)错误原因:蓝图(Blueprint)下面的一个目录的路由@api.route(‘index’)没加斜杠修改后的代码:@app.rout原创 2020-10-19 10:09:03 · 480 阅读 · 0 评论 -
【报错】Python3 AttributeError: ‘str‘ object has no attribute ‘decode‘
错误代码:str = '张三'res = str.decode('utf-8')print(res)正确代码:str = '张三'res = str.encode('utf-8').decode('utf-8')print(res)原创 2020-10-09 11:00:48 · 215 阅读 · 0 评论 -
【报错】flask-socketio failed: Error during WebSocket handshake: Unexpected response code: 500
今天遇到个很奇怪的问题,flask-socketio本地跑的时候,没有报错,但是一旦部署到线上,就报了 failed: Error during WebSocket handshake: Unexpected response code: 500 的错误。后来查看服务器日志:出现了以下错误:RuntimeError: You need to use the gevent-websocket server. See the Deployment section of the documentation fo原创 2020-10-09 10:57:21 · 4995 阅读 · 1 评论 -
Flask SQLAlchemy Model中Column列类型和属性
常用的SQLAlchemy列类型:类型名python类型说明Integerint普通整数,一般是 32 位SmallIntegerint取值范围小的整数,一般是 16 位BigIntegerint 或 long不限制精度的整数Floatfloat浮点数Numericdecimal.Decimal定点数Stringstr变长字符串Textstr变长字符串,对较长或不限长度的字符串做了优化Unicodeunicode原创 2020-09-15 14:29:05 · 1365 阅读 · 0 评论 -
Python Redis哈希hash存储和读取json字符串
import redisrdb = redis.Redis(host='localhost',port=6379,db=1)#模拟数据data = [ {"name":"张三","age":18}, {"name":"李四","age":20}]#redis哈希存储,注意这边必须是以字符串形式存储for x in data: hsname = x['name'] rdb.hset('student',hsname ,str(x))读取数据:list = rdb.hgetall(原创 2020-07-24 16:11:04 · 2486 阅读 · 0 评论 -
Python按照先后顺序,对列表进行多条件自定义排序
需求:对指定的列表,按照以下顺序排序:①先按照【编号】从小到大进行排序②再按照列表中包含【方案、扩初、施工图、后期服务】的顺序进行排序实现:自定义排序函数reversed_cmp,并将这个函数传入sort或sorted方法中。在python3中,借助functools包来完成。import functoolsarr = [ '2020-1001_有方案', '2020-1001_无后期服务', '2020-1001_有扩初', '2020-1001_无施工图原创 2020-07-23 17:35:27 · 1939 阅读 · 0 评论 -
【已解决】Ubuntu19.04部署Python selenium+Chrome时遇到的各种坑
sudo add-apt-repository ppa:linuxuprising/libpng12sudo apt updatesudo apt install libpng12-0原创 2020-06-05 17:08:55 · 1030 阅读 · 0 评论 -
Python Flask微信小程序登录详解及登录api实现
一、官方登录流程图微信小程序登录后获得session_key后,返回了encryptedData,iv的数据,其中encryptedData解密后包含了用户的信息,解密后的json格式如下:{ "openId": "OPENID", "nickName": "NICKNAME", "gender": GENDER, "city": "CITY", "province": "PROVINCE", "country": "COUNTRY", "avat原创 2020-06-04 15:08:55 · 5242 阅读 · 2 评论 -
Python Flask文件上传api
from werkzeug.datastructures import FileStoragefrom flask_demo.app.models.user import User,Rolefrom flask_demo.app import app,dbfrom flask import jsonifyimport osimport jsonimport hashlibimport uuid@app.route('/upload',methods=['POST'])def upload原创 2020-06-01 10:51:27 · 786 阅读 · 0 评论 -
Python Flask实现登录、登录超时验证功能
思路:1、用户输入账号密码,请求登录api;2、账号不存在,返回“账号不存在”信息;3、账号存在,判断登录密码是否相等(加密后的密码),若不相等,返回“密码不正确”信息,若相等,生成用户token(用户令牌),并且设置登录时效性,将token返回给前端设置本地缓存;4、访问任意api,检查是否登录/登录是否超时,若未登录或登录超时,则返回“Need Login”信息,用户需要重新登录。models:user.pyclass User(db.Model): __tablename__ =原创 2020-05-29 18:17:55 · 2176 阅读 · 0 评论 -
【报错】sqlalchemy.exc.ArgumentError: Mapper mapped class Role→role could not assemble any primary key
出错代码:#生成抽象模型,不会创建模型对应的表,减少重复代码class BaseModel(db.Model): __abstract__ = True id = db.Column(db.Integer, pramary_key=True, autoincrement=True) name = db.Column(db.String(20), unique=True, nullable=False)class Role(BaseModel): __tablenam原创 2020-05-28 10:36:47 · 2162 阅读 · 0 评论 -
Redis学习笔记 - Python操作Redis
redis文档:http://redisdoc.comredis是一个高性能的键值数据库。是当前最热门的的的NoSql数据库之一,也被人们称为数据结构服务器。redis应用:1、高速缓存服务(用户经常访问的数据从数据库搬到内存)2、实时排行榜3、投票点赞4、验证码服务5、消息队列等等应用场景…查看redis版本redis-server --versionredis-cli --version查看redis进程netstat -nap | grep redis启动redisre.原创 2020-05-21 11:17:28 · 285 阅读 · 0 评论 -
Python 计算代码执行时间
代码执行时间 = 结束时间 - 开始时间stime = datetime.datetime.now()#这边是你执行的代码etime = datetime.datetime.now()print(etime - stime)原创 2020-05-15 15:30:57 · 204 阅读 · 0 评论 -
SqlAlchemy—SQL优化之union写法代替or写法
SQL优化:应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描原语句:select * from table where id=666 and num=10 or num=20SqlAlchemy or语句list = Table.query.filter( Table.id == 666 ,or_(Table.num == 10,Tabl...原创 2020-05-08 14:20:02 · 1930 阅读 · 5 评论 -
SqlAlchemy Could not evaluate current criteria in Python: “Cannot evaluate clauselist with operator
目标:筛选数据库中2020-04月份的数据,并且批量更新is_freeze字段为1原语句:Kaipiao为表名,Kaipiao.kprq为开票日期month = '2020-04'obj = {'is_freeze':1}sql = f"Kaipiao.query.filter(Kaipiao.kprq.like('{month}%')).update({obj})"list= ev...原创 2020-05-07 18:43:26 · 2438 阅读 · 0 评论 -
Python连接Redis数据库报错:redis.exceptions.DataError: Invalid input of type: 'NoneType'
报错提示:redis.exceptions.DataError: Invalid input of type: 'NoneType'. Convert to a byte, string or number first.+查看redis版本:发现redis=3.2.1pip3 freeze原因分析:Python的第三方库redis升级到3.0后仅接受用户数据为字节、字符串或数字(整数,...原创 2020-04-21 11:25:07 · 3649 阅读 · 1 评论 -
Python判断某个变量是否存在/定义
方法一:使用内置函数locals()'testkey' in locals().keys()方法二:使用内置函数dir()'testkey' in dir()方法三:使用内置函数vars()vars().has_key('testkey')原创 2020-04-02 13:46:03 · 2344 阅读 · 0 评论 -
Python获取当前日期前后N天或N月的日期
注意:python3中的整除应该是//,而不是/,网上很多的都是/,在Python3中会报错:TypeError: integer argument expected got float’ Pythonfrom time import strftime, localtimefrom datetime import timedelta, dateimport calendaryear = ...转载 2020-03-30 17:23:35 · 543 阅读 · 0 评论 -
【已解决】利用nohup使得Python Flask项目在服务器上后台运行
一、问题: 今天在部署Python Flask项目到线上的时候,在虚拟环境中,运行项目可以正常访问到api,但是在Xshell中,一旦Ctrl+C或者关闭ssh,他就停止了,api再也请求不到了二、nohup1、nohup 是 no hang up 的缩写,就是不挂断的意思。2、nohup命令:在系统上运行一个进程的时候,不想让其在你退出账号时关闭,即可用nohup命令。该命令可以在你退出帐...原创 2020-03-20 14:07:44 · 9142 阅读 · 0 评论 -
Centos7 从零开始安装Python3,部署Python Flask项目
操作:1、首先安装好Linux宝塔面板,简单可视化操作,然后去服务器控制台开放相应的端口,一键配置nginx,Mysql等yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2、安装python3.7.0,...原创 2019-12-30 11:31:59 · 1215 阅读 · 0 评论 -
Flask需求文件requirements.txt的创建及使用
python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。在虚拟环境中使用pip生成:pip freeze >requirements.txt当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:pip install -r requirements.txt...原创 2019-12-19 16:57:55 · 348 阅读 · 0 评论