Gunicorn+GeventWorker环境下fork进程意外结束的问题
2021-05-18
前言在使用Gunicorn+GeventWorker托管Flask应用,使用os.fork时出现了以下问题。
Parent changed, shutting down : <Worker xxxx>
本文摘录自本人毕业设计论文。
问题分析通过os.fork创建进程,实际上是将当前进程的内存数据复制了一份给子进程,当子进程发现其不是由Gunicorn主进程所创建时,Gunicor...
在Windows平台安装PyCrypto
2020-07-22
前言在使用PyInstaller加密打包程序时,遇到了打包程序无法启动的问题。
查阅资料后发现是因PyCrypto未能正确安装。
首先尝试了安装替代品PyCryptoDome,后来发现并不可行。
然后编译安装PyCrypto时又出现了无法安装的问题,再以此记录。
正文遇到以下错误:
...省略部分无关内容...
C:\Program Files (x86)\Microsoft Visu...
Python在CentOS下的编译安装过程
2020-07-14
前言最近在编写CentOS环境下的自动部署脚本,开发环境使用Python3.7+在CentOS环境下需要自行安装。
在安装的过程中,把以前没记录下来的坑又踩了一遍,故以此记录。
下载源码点击打开Python官方源码下载页。
编译安装
安装编译环境
yum -y install gcc make
安装依赖
yum -y install zlib-devel
# 以下可选,根据需要安装,不安装...
unoconv转换Csv中文乱码问题
2020-06-23
前言最近在使用PHPSpreadsheet导出大量数据到Xlsx时,频繁出现各种问题;如内存溢出、数据丢失等。
后来更换导出格式为Csv,问题减少了,但是在Office中使用极其不友好;如不支持单元格格式、在不同系统中使用的编码不同可能会出现乱码的情况。
于是就有了这么一个折中的方案,PHP导出时使用Csv格式,导出完成后,使用unoconv将文件转换为Xlsx格式。
然而使用unoconv转换为...
使用 ufw 抵御海外流量攻击
2020-01-04
前言近日,检查阿里云服务器账单时,发现莫名其妙少了10块钱;仔细一看,费用都是由服务器流量产生的。
但在这段时间里,我几乎没怎么使用服务器进行大流量操作,相必是被 Hack 了。
抱着这样的想法,我开始检查服务器环境…
检查网络由于费用都是由服务器流量产生的,第一步自然是检查网络。
使用 nethogs 检查后发现,流量来自多个海外 IP,而且 IP 一直在改变;一直都在连接 RDP 协议的端口;...
PyQt5 QWidget初始化问题
2019-08-19
前言在初始化QWidget时出现了以下问题。
Traceback (most recent call last):
File "form/__init__.py", line 62, in __init__
self.setupUi(self)
File "view/form.py", line 31, in setupUi
QtCo...
Python闭包问题的探讨
2019-08-01
前言今日在更新程序的时候遇到了个问题。
如何生成多语言的菜单,创建并绑定相应的回调函数?
生成菜单自然是很简单的,一个for循环就好了,但是生成相应函数就???
正文在解决以下事件的过程中,又思考得出了别的内容。
续:前言事件情况如下,现有语言列表及两个业务方法。
# 现有两种语言,不排除以后会扩展#(即便只有两种语言也不写hardcode,便于日后扩展)languages = ['en&...
Flask 蓝图嵌套
2019-06-13
前言Flask是一个轻量级的python web框架,与django相比,flask抛开了繁琐的配置项等等。
Flask与Django一样,支持模块化开发,使用BluePrint(蓝图)实现。
但是,这个蓝图并不支持嵌套。。
正文当然,我能想到的问题早就有人想到,并解决了。
详情见issue.
解决方案class NestableBlueprint(Blueprint):
"&q...
Flask SelectField (Not a vaild choice) 错误解决
2019-06-13
前言最近折腾起来Flask,在使用WTForm的时候遇到了一点小问题。
当提交表单时,SelectField项提示错误Not a vaild choice.
正文此时表单代码为:
class QuestionAddForm(FlaskForm):
type = SelectField('类型', choices=list(
{
1: ...
Python解析url请求参数
2019-03-18
前言在制作爬虫模拟登陆时发现表单数据如下。
userName=xxx&userPwd=xxx
结构相当简单,想要转换成dict,分割两下就好了,但是仔细想想,这么常见的需求,一定会有相应的模块。
寻找了一番,果然是有的。
方法详细操作自行查看文档。
from urllib.parse import parse_qs
print(parse_qs('userName=xxx&...