
Python
文章平均质量分 76
赖勇浩
这个作者很懒,什么都没留下…
展开
-
因浏览器未发送Referer HTTP头导致Django项目CSRF验证失败的原因
前段时间,做了一次服务器减负的同时,也把所有的遗留网站都加上了 HTTPS 支持,让客户免受推荐 HTTPS 证书的电话骚扰(他们的话术很吓人,客户听了以后会害怕地找我,这就很让我烦心了)。因为遗留的都是企业官网,很少人会登陆更新内容,所以很久以后,客户来联系我说后台登陆不上了。原创 2024-10-06 00:12:17 · 946 阅读 · 0 评论 -
Python多语言语种识别:检测文本是否中英文
但使用起来感觉有点麻烦,编程接口上不是特别直观,我就没有尝试。不过它识别率和性能都比较差,而基于神经网络模型的。有比较多的 Python 库可以做这件事情,先给一些例子,可以直观看出要做什么事,有很容易理解的编程接口,所以有人基于。列了七八个,当前还比较流行的,是。,易于编程,性能和准确性都很好。的效果和性能都更好。,在性能和准确性上都比。原创 2024-09-24 19:37:31 · 883 阅读 · 0 评论 -
一次feedparser处理中文RSS时读取标题为乱码的Bug溯源之旅
我一时也不知道怎么先整个文档转编码,只好先简单改一下代码,在获取 title 的时候,不要。另,编程真的是老天赏饭吃,我纠结半天后向Shell壳总求助,他第一反应就是「看一下是不是最后一个字符缺失了」,而我则需要debug几个小时才能认识到这一点。,因为感觉不是完整的解决方案(应该整个文档先转编码再 parse 的),所以不打算往上游 PR 修改了,如果有读者遇到同样的问题,可以我的这个 fork。这样的老牌项目有这样的大Bug一直没有人修复,也是奇怪了。,当下去查看它的代码,确认是这个原因。原创 2024-09-24 17:18:39 · 659 阅读 · 0 评论 -
使用大语言模型(LLM)修正小段乱码(Mojibake)为正常文本
在上一篇文章ftfy:修正小段乱码(Mojibake)为正常文本的Python库中,我介绍了这个库。但随着持续的开发,我发现它仍然有一些解决不了的转换。如下:可以看到后面的结果并没有转换成功,而且 也返回 ,非常爽快地承认了这一点。而当使用 chatGPT 来解决时,简单的提示语足以解决问题:输出:这就很妥贴。接下来只要优化一下提示词,让 LLM 返回 JSON 对象,就可以很方便地进行下一步处理了。原创 2024-09-16 01:21:17 · 1024 阅读 · 0 评论 -
【经验分享】在不同版本的 PostgreSQL 之间进行数据迁移
本着的朴素想法,一直想把服务器成本降下来。这批服务器和进程,基本上都是之前开外包公司的时候积累下来的,随着时间迁移,大部分客户不再续费了,在网络工程,在数据备份策略等各方面都有很大的优化空间。现在每个月要支付1000块的费用,实在太高了。这几天稍闲一点,终于下定决心去优化。原创 2024-09-02 21:40:08 · 1268 阅读 · 0 评论 -
ftfy:修正小段乱码(Mojibake)为正常文本的Python库
在开发的早期,就发现一个问题:偶尔有些文章的标题会出现乱码,见下图红框处:当时就花了不少时间去琢磨字符串编解码,包括使用chardet去猜测编码也没用,因为猜测的结果是utf-8,但这显然是不知道原来是什么编码又被错误使用utf-8编码的结果,不知道原来的编码自然不可能不愿。就这样始终不得其法,又因为有这种情况的内容很少,虽然我有点强迫症,但衡量成本收益比,当时就决定算了。原创 2024-08-30 23:51:23 · 1441 阅读 · 0 评论 -
Django老项目升级到新版本
手上有个 Django 老项目,一直跑得好好的,好几年没动过了,维护费收得正爽,没想到客户来了个新的运营人员,丢了个改动需求过来。我一看也没啥大改,大意了,就答应了。原创 2024-04-21 00:28:30 · 1455 阅读 · 0 评论 -
在网址URL中隐藏数据的一些方案
比如数据库主键自增ID,UUID,MongoDB 的ObjectId等,你不希望用户看到。可以使用sqids。它可以通过自定义字母表来达到别人无法破解你的数据。只要使用不同的的alphabet就可以了,在它的页面下方有个小工具,可以随机生成一个独特的字母表,刷新一下,然后复制到你的代码里,就谁也猜不透你的小心思。这个很有用,比如你的数据表使用自增 ID,那么使用sqids加密以后,1就可能变成了Uk(注:不同的字母表会不同),而2则是gb,小的数字变化结果差异还非常大。原创 2024-01-07 10:20:16 · 1506 阅读 · 0 评论 -
Python虚拟环境教程:使用Virtualenv和Poetry
因为觉得有参考价值,一直打开许多页面没有关闭,浏览器的 tab 都差不多上百了,决心把一些有意义的内容通过翻译、摘录和重编的形式把核心内容快速统一到博客上来,方便后续检索,也好关掉一些浏览器窗口。本文是Python Virtual Environments tutorial using Virtualenv and Poetry的翻译、摘录和重编,原作者Dmitriy Zub,我去掉了IDE的部分,加入了一些其它内容,让它更加顺畅内聚。首先这是篇向大家介绍虚拟环境和和小教程,专注在这三个方面:简而言之,就是原创 2022-07-02 22:13:42 · 4762 阅读 · 2 评论 -
把Github用作Pypi Server
本文是 How to use GitHub as a PyPi server的翻译、摘录和重编,原作者cedd burge,我加入了一些配置和网页源码之类的内容,让它更加顺畅和完整。首先是有很多私有 Pypi Server 方案,但需要自己架设,cedd哥不想干这事,只想白嫖,最后他成功了,本文就是他的方案。首先,是可以从里安装程序包的,比如cedd哥在github托管了一个的项目,这个项目的代码结构是符合Python包规范的,那么就可以通过以下命令把这个包安装到电脑:因为这个项目是开源(公开)的,谁都可原创 2022-07-02 21:14:22 · 865 阅读 · 0 评论 -
比较 REST、JSON:API 和 GraphQL
首先,这篇文章是从请求效率、运维的简单性、API 可发现性、数据写入等来比较 REST、JSON:API 和 GraphQL,其中这里的 REST 就是指 RESTful 风格的 HTTP API 接口,一个接口一个接口写出来的那种,而不是类似那种设计和规范的框架做出来的。然后定义比较的指标:作者做了个表来比对:所以Dries哥态度是很明确的,他选JSON:API。接下来从这4个方面分别展开说。这里其实分了两部分内容,一部分是类似外键或引用的处理方式,另一部分是对响应体的裁剪能力。我们先来看第一部分,Dri原创 2022-07-02 16:27:27 · 2543 阅读 · 0 评论 -
Nginx截断uwsgi+Django(Flask)大响应体的问题及解决
昨天一个一直续费的老客户,说网站出问题了。他的网站只是简单的展示型公司官网,用 Django 做的,日常做放放产品,连交易都没有,是2016年做好一直没有动过的。年年续费很积极的优质客户反馈问题,赶紧问他咋了,他发了张图过来,说今天他编辑商品详情,发现保存按钮没有了,如下图:可以看到这个页面已经结束了,但底部的保存按钮不见了。正常的Django Admin管理后台商品编辑界面,下面有一排操作按钮。这很奇怪,为什么没改代码会突然这样。按我们程序员的思维,如果代码没改,那肯定是客户做了什么操作,问他,只是原创 2022-06-30 17:55:37 · 2018 阅读 · 1 评论 -
当__getattr__()遇上@property,坑倒Python老司机
今天同事反馈说我写的一个基础库有一个bug,大概就是自己写的类明明有属性foo,但会抛个类似下边的异常出来,AttributeError: 'A' object has no attribute 'foo'这很让人困惑啊,因为抛出异常的函数是基类的__getattr__()方法,所以他就找我来解决了。我看代码也是一脸懵,这个foo就摆在那里,这个bug给了我一个眼见不为实的错觉,一时找不到方向。突然我发现这个foo上面顶着个@property的帽子(装饰器),咦,会不会和这个有关系呢?于是搜索一下,就原创 2021-04-08 23:23:43 · 1508 阅读 · 0 评论 -
用80行代码数1000个孔——《Python也可以》之四
年前在狗东新买了一个茶滤,店家号称有921个孔,我觉得好像有点“夸张”,总想证实一下。肉眼肯定是数不过来了,所以我就想着要不写个程序来数吧,就拍了张照片放着。年前太忙了,然后又是过年,昨天终于有空了,便写了个80行的小脚本数了一下。预处理因为是白瓷,所以洞孔最好全黑,于是拍照的时候我就在下面放了个黑色的无纺布袋子,拍出来的效果还可以。用微信传到电脑上,然后简单地用macOS自带的图像app处理一下,主要是去掉边缘无关元素和调整明暗。预处理完成以后如下图:概述总体来说,这是一个很简单的任原创 2021-02-15 12:25:37 · 1145 阅读 · 0 评论 -
macOS brew 更新后Python 2找不到md5
前几天,不知道干了啥,比较值得怀疑的是当时执行brew install supervisor更新了一堆应用程序,然后只要cd ~或者回车一下,就会吐出一堆错误来。ERROR:root:code for hash md5 was not found.Traceback (most recent call last): File "/usr/local/Cellar/python@2/2.7....原创 2020-04-12 21:38:27 · 6896 阅读 · 1 评论 -
Cython 0.15,用 OpenMP 并行多核加速 Python!
赖勇浩(http://laiyonghao.com)注:0、读懂这篇文章需要了解 OpenMP 基本用法。1、读懂这篇文章需要了解 GIL 基本概念。2、基本上是这篇的翻译:http://docs.cython.org/src/userguide/parallelism.html翻译 2011-08-08 17:50:02 · 18965 阅读 · 1 评论 -
python-message v0.2.x 全接触
赖勇浩(http://laiyonghao.com)之前在博客发过两篇文章(http://blog.csdn.net/lanphaday/article/details/6065896,http://blog.csdn.net/lanphaday/article/details/6074095)谈到过 python-message 这个自制的订阅/发布模式的 Python 库,但都没有完全介绍它的原创 2012-01-25 23:56:16 · 10619 阅读 · 1 评论 -
Python 于 webgame 的应用
赖勇浩(http://laiyonghao.com)2011 年 12 月初,首届 PyCon China 会议在上海召开,我受邀作了题为《Python 于 Webgame 的应用》的报告,其中的主体思想在 InfoQ 记者丁雪丰先生写的稿件(http://www.infoq.com/cn/articles/pycon-2011-first-in-china)中有完备的描述,在此我直接引用了:……原创 2012-01-10 10:07:06 · 14190 阅读 · 5 评论 -
用BP人工神经网络识别手写数字——《Python也可以》之三
赖勇浩(http://laiyonghao.com)这是我读工程硕士的时候完成课程作业时做的,放在 dropbox 的角落中生尘已经有若干年头了,最近 @shugelee 同学突然来了兴致搞验证码识别,问到我的时候我记起自己做过一点点东西,特发上来给他参考,并趁机补充了一下《Python也可以》系列。图像预处理使用下图(后方称为 SAMPLE_BMP)作为训练和测试数据来源,下文将讲述如何将图像转原创 2011-12-28 20:09:15 · 49021 阅读 · 33 评论 -
Trac 经验谈之(6完)插件篇补遗
Trac 经验谈之(1)杂谈篇Trac 经验谈之(2)杂谈篇补遗Trac 经验谈之(3)工作流篇Trac 经验谈之(4)报表篇Trac 经验谈之(5)插件篇Trac 经验谈之(6 完)插件篇补遗=================Trac 经验谈之(6完)插件篇补遗赖勇浩(http://laiyonghao.com)在插件篇中,主要介绍了我正在使用的插件,它们完成了许多项目中的需求。不过在寻找插件的原创 2011-12-24 19:30:17 · 10191 阅读 · 2 评论 -
Trac 经验谈之(2)杂谈篇补遗
Trac 经验谈之(1)杂谈篇Trac 经验谈之(2)杂谈篇补遗Trac 经验谈之(3)工作流篇Trac 经验谈之(4)报表篇Trac 经验谈之(5)插件篇Trac 经验谈之(6 完)插件篇补遗=================Trac 经验谈之(2)杂谈篇补遗赖勇浩(http://laiyonghao.com)教训一定要有模板嗯,我说的是每一个任务单(ticket)的描述。如果没有一个描述模板,原创 2011-08-03 20:56:14 · 10201 阅读 · 6 评论 -
参加了 InfoQ 的虚拟座谈会
赖勇浩(http://laiyonghao.com)蒙组委的邀请,在 12 月 4 日参加了在上海举办的 PyCon China 2011 活动(http://cn.pycon.org/2011/),并作了题为《Python 于 Webgame 的应用》的报告(幻灯:http://www.slideshare.net/laiyonghao/python-webgame-10452102,录像:ht原创 2011-12-21 22:53:42 · 4441 阅读 · 2 评论 -
简明 Python 编程规范v2
赖勇浩(http://laiyonghao.com)注:之前发布一篇《简明 Python 编程规范》(见:http://blog.csdn.net/lanphaday/article/details/2834883),本是我给当时所在的公司制定的,发表到博客的时候,对齐等原创 2011-07-12 20:39:47 · 22045 阅读 · 15 评论 -
两个 Python 的冷技巧(2)
赖勇浩(http://laiyonghao.com)一先来看两句代码record = cursor.execute('select * from tbl where id = 123456').fecth_all()[0]msg = struct.unpack('!I', buff)[0]不知道大家怎么样看,我觉得有这两个 [0] 跟在后面,还是蛮丑的。其实可以利用 Python 赋值语句简写:原创 2011-11-08 10:37:03 · 11983 阅读 · 10 评论 -
Cython三分钟入门
作者:perrygeo译者:赖勇浩(http://laiyonghao.com)原文:http://www.perrygeo.net/wordpress/?p=116我最喜欢的是Python,它的代码优雅而实用,可惜纯粹从速度上来看它比大多数语言都要慢。大多数人也认为的速度和易于使用是两极对立的——编写C代码的确非常痛苦。而 Cython 试图消除这种两重性,并让你同时拥有 Python 的语法和翻译 2009-09-17 10:17:00 · 51953 阅读 · 19 评论 -
两个 Python 的冷技巧
一记得刚开始工作的时候,老大给我们上 C++ 基础课,告诉我们字符串字面量可以换行(如下代码),感觉真是如梦如幻。#include int main(int argc, char** argv){ char* w = "hello"原创 2011-09-20 14:23:35 · 10085 阅读 · 4 评论 -
(已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
10 行代码判定色*情*图片——Python 也可以系列之二作者:赖勇浩(http://blog.csdn.net/lanphaday)致编辑:我已经给图片打上马赛克了,别再删除了啊,我这是纯技术贴!声明:本文因科学研究需要,包含部分色*情*图片,不可作为传播色*情*信息的证据。今天先是在 CSDN 看到《大学生发明依据皮肤比例过滤色*情*图片软件》(http://news.csdn.net/n/原创 2008-10-28 14:13:00 · 76759 阅读 · 100 评论 -
为个小善——发布 Python 库 absolute32
赖勇浩(http://laiyonghao.com)问题1在较新版本的 Python 中,当两个 int 相加溢出时,它会自动把把结果转换到 long 类型,比如:>>> 0x7FFFFFFF + 12147483648L这个特性很好,但是它跟 C 语言的结果不一样。如果你要把原创 2011-09-08 23:31:00 · 7115 阅读 · 6 评论 -
为 setuptools 开路搭桥
赖勇浩(http://laiyonghao.com)关键字:python, easy_install, setuptools, Bitvise Tunnelier, polipo, windows, linux, socks5, http, proxy在这里,我们有些网站无法访问。其中对我影响比较大的一个就是安装某些 Python 模块的时候,easy_install 无法访问到网站。在这里分享让原创 2012-02-21 14:11:49 · 10989 阅读 · 4 评论 -
用 python 快速搭建网游服务器
赖勇浩(http://laiyonghao.com)今天(2009年5月31日) OurPNP.org 搞了个聚会活动,弄了十几二十个人在广州海珠广场的堂会呆了五个小时,创下了我在 K 房呆的最长时间纪录。应他们的邀请,我做了个题为《用 python 快速搭建网游服务器》的小演讲,因为那边的电视竟然不能接电脑,所以讲的时候没有能够参照 PPT 来讲,观众看不到 PPT 可能效果一般般。现在通过博客原创 2009-12-14 09:10:00 · 18301 阅读 · 19 评论 -
用 python-message 为程序库和日志模块解耦
赖勇浩(http://laiyonghao.com)之前我说过 python-message 与常见的 signal/slot 不同,处理函数不需要知道谁会发出一条信息,而发出信息的对象也不必知道是否有人处理它。这个与众不同的特性,显然有更宽广的适用范围,下面就是其中一个例子。假定你在编写一个非常牛X的程序库,姑且为它取名为 foo,里面有一个函数叫 bar,你就想啊,这么牛X的一个函数,肯定要写原创 2010-12-13 21:08:00 · 7208 阅读 · 2 评论 -
Python 3.0 抢“鲜”体验
Python 3.0 抢“鲜”体验欢迎转载、打印、分发等,但不可用于商业用途,任何时候必须保留全文完整,并声明转载自恋花蝶的博客(http://blog.csdn.net/lanphaday),谢谢。 2007年8月31日,Python 3000的最新版本Py3.0终于释出了第一个alpha版本。因为3.0版本与之前的2.x版本不兼容,所以Py3.0版本完全可以看作原创 2007-09-04 20:07:00 · 21534 阅读 · 21 评论 -
多线程Django程序耗尽数据库连接的问题
Django的ORM是非常好用的,哪怕不是做Web项目也值得一用,所以网上也可以找到不少使用 Django 开发非Web项目的资料,因为除了ORM之个,命令行、配置文件等组件也非常好用。最近用这种方式开发了一个非Web项目,而且是多线程的。一个线程从DB中获取jobs,然后有N个工作线程,并把结果写回DB。简单来说就是这样。项目运行一段时间后,发现数据库连接耗尽了,幸好内存大,然后一直往上调,...原创 2018-10-07 17:02:22 · 6954 阅读 · 0 评论 -
在windows 2008 server 的IIS 7上运行 django 1.11 + python 3.6
缘起使用django开发了一个项目,客户的技术体系是全栈window的,所以要求我们提供把项目部署到windows服务器的服务。写这个原因是旧的在 windows 上运行python网站程序的文档,基本上全过时了。从macOS登陆windows服务器嗯,需要安装 Microsoft Remote Desktop,版本是 8.0.x。需要注意的是微软官网的下载链接是直接链接到app store,而该A原创 2017-04-19 18:33:27 · 23493 阅读 · 19 评论 -
关于Python编程的一些问答
导语大约1个月前,oschina.net和华章图书一起合作做了一个活动:OSC第51期高手问答——聊聊python那些事,来推广我参与撰写的书《编写高质量代码:改善Python程序的91个建议》(豆瓣链接)。在回答问题的过程中,我看到有若干问题是好几个人都问了的,就萌发了在事后把这些问答整理整理的想法,以下内容就是来自那一次的问答。为简化整理,已经去掉了提问人的昵称,并做了简单的分类。纠结的Py2原创 2014-09-01 20:31:34 · 20694 阅读 · 2 评论 -
svn 集成 redmine 账户验证的终极解决方案
svn 集成 redmine 账户验证的终极解决方案动机对于大部分开发团队来说,一般都需要一套 SCM 系统,通常是 svn + redmine,有些还会有 reviewboard 之类的。大家当然不希望上三套系统就有三套账号密码,那样记忆起来太麻烦了,所以大家都希望有统一的验证方案,当然,LDAP 是一种选择,考虑到它部署起来比较难,成本比较高,一般会选择统一使用其中某一个系统的账户验证。redm原创 2013-08-27 21:36:42 · 10647 阅读 · 5 评论 -
强制 code review:reviewboard+svn 的方案
赖勇浩(http://laiyonghao.com)2012 年 2 月 22 日更新:保持文档与 0.1.2-r14 版本同步(变更部分使用蓝色#3333FF)。2012 年 3 月 8 日更新:保持文档与 0.1.2-r16 版本同步(变更部分使用红色#CC0000)。2012 年 4 月 28 日更新:保持文档与 0.1.3-r16 版本同步(变更部分使用深紫色#993399)。我们团队在开原创 2011-12-29 18:05:35 · 48542 阅读 · 115 评论 -
打造百折不挠的 setuptools
赖勇浩(http://laiyonghao.com)我一直习惯使用 setuptools 来安装 python 的程序库,因为 easy_install 实在是太简单实用了。但因为公司的网络环境比较严格,把具有登陆功能的 pypi.python.org 域名给禁用了,开放的是 c.pypi.python.org 镜像,使用 setuptools 安装 python 程序库的时候有些包下载不了,如下原创 2012-02-08 23:21:42 · 9196 阅读 · 0 评论 -
Pipe——Python 的中缀语法库
赖勇浩(http://laiyonghao.com)注:本文基本上是翻译这篇文章(http://dev-tricks.net/pipe-infix-syntax-for-python)。通过 Pipe 模块,就能够使用 Python 用上中缀语法。首先来看一下传统前缀语法的代码:sum(select(where(take_while(fib(), lambda x: x 很难读?再来看看中缀语法代翻译 2011-03-29 20:35:00 · 13566 阅读 · 13 评论 -
ibmm,让思维导图回归本质
赖勇浩(http://laiyonghao.com)缘起你想用思维导图来分析问题,然后,你就有两个问题了。——无名氏许多朋友都听说过思维导图(又称脑图),它是用来理清思路的好办法。同时我也相信许多朋友在使用思维导图的过程中遇到了许多问题,比如:搜索了一下,发现思维导图的编辑器都好几十 MB;下载安装发现这些 java 写的程序启动巨慢,还占内存;编辑了三五十个节点发现自己不停地要调整位置,还调不好原创 2012-12-27 22:35:17 · 21368 阅读 · 11 评论