随笔分类 -  Python

摘要:在Python中,当用pymysql库,或者MySQLdb库进行数据库查询时,为了防止sql注入,可以在execute的时候,把参数单独带进去,例如: def execute_v1(): config = { 'user': 'root', 'password': 'password1', 'hos 阅读全文
posted @ 2021-04-12 12:06 Xjng 阅读(4315) 评论(0) 推荐(0) 编辑
摘要:验证苹果登录,官方提供两种验证方法,一种是token,另一个种是code。这里使用的是token 登录流程: 3. 苹果客户端调用苹果API,获取到用户的信息,包括: 4. user_id 5. 昵称 6. identity_token 7. 苹果客户端发送identity_token到服务端 8. 阅读全文
posted @ 2020-03-11 19:20 Xjng 阅读(2877) 评论(0) 推荐(0) 编辑
摘要:1. 日志 通过日志或者print来打印变量。必要时可以打印 和`globals()` 建议使用logging.debug()来代替print,这样到了正式环境,就可以统一删除这些日志。 2.trace Python有个trace模式,可以打印整个程序的执行流 例如这段简单的程序,执行 就会输出下面 阅读全文
posted @ 2019-11-03 15:33 Xjng 阅读(2411) 评论(0) 推荐(0) 编辑
摘要:循环导入的最好的解决方法是从架构上优化,即调整模块和模块成员变量的设计。一个好的原则是:可导出的成员变量,都不应该依赖于导入进来的成员变量。 但是在业务开发的过程中,总会遇到通过架构层面解决不了的导入问题,这时候就只能通过语言层面来解决了。 目录结构(下面的案例的目录结构都是这样的): root.p 阅读全文
posted @ 2019-04-08 18:33 Xjng 阅读(8959) 评论(2) 推荐(3) 编辑
摘要:有时候有些正式环境的机器,不能访问外网,就只能在能访问外网的机器上搭建一个转发服务。 一、安装包 pip install flask_pypi_proxy "flask_pypi_proxy" 二、启动 创建文件 server.py 更多配置参考 "配置" 启动 python server.py 三 阅读全文
posted @ 2018-12-06 11:13 Xjng 阅读(1185) 评论(0) 推荐(0) 编辑
摘要:一、安装多个包 1.有网的服务器 1.生成requirement.txt文件 pip freeze /tmp/wheel_pip/requirements.txt 这个命令会把当前环境下面的pip安装包名,都放到文件中 2.打包pip和wheel的whl文件 pip wheel wheel dir= 阅读全文
posted @ 2018-07-30 18:26 Xjng 阅读(8335) 评论(0) 推荐(1) 编辑
摘要:一. 什么是高可用性 服务端,顾名思义就是为用户提供服务的。 停工时间,就是不能向用户提供服务的时间。 高可用,就是系统具有高度可用性,尽量减少停工时间。 停工的原因一般有: 1. 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等。 2. 访问量急剧上升,导致服务器压力过大。导 阅读全文
posted @ 2018-02-27 12:03 Xjng 阅读(1927) 评论(2) 推荐(3) 编辑
摘要:使用requests模块访问HTTPS网站报错: 看到两个警告,查看警告提供的 "网站" 发现,是因为在2.7.9之前的Python版本,urllib3的ssl比较旧,就会导致这个错。 解决方法是安装 ,也就是带安全模块的urllib3. 安装后,一般就可以访问了。 如果还是不行,就要重新安装req 阅读全文
posted @ 2017-05-12 10:44 Xjng 阅读(7465) 评论(0) 推荐(0) 编辑
摘要:Python LOGGING使用方法 1. 简介 使用场景 | 场景| 适合使用的方法| | : | :| | 在终端输出程序或脚本的使用方法| print| | 报告一个事件的发生(例如状态的修改)| logging.info()或logging.debug()| | 发生了一个特定的警告性的事件 阅读全文
posted @ 2016-10-31 17:53 Xjng 阅读(6611) 评论(0) 推荐(0) 编辑
摘要:该写法根据Python的 "PEP 257" 文档总结。 类的函数称为方法(method),模块里的函数称为函数(function) 1. 每一个包,模块,类,函数,方法都应该包含文档,包括类的__init__方法 2. 包的文档写在__init__.py文件中 3. 文档有单行文档和多行文档 4. 阅读全文
posted @ 2016-05-26 12:03 Xjng 阅读(13393) 评论(2) 推荐(1) 编辑
摘要:Python的Web开发中,如果使用Django框架,那么较为成熟稳定的服务器架构一般是Nginx+uWSGI+Django。而为什么一定要三个结合在一起呢?直接使用Django的runserver来启动服务器进程,或者uWSGI+Django可不可以呢?为什么? 概念说明: APP(应用程序),就 阅读全文
posted @ 2016-05-16 18:21 Xjng 阅读(22061) 评论(11) 推荐(10) 编辑
摘要:服务器架构是:Nginx+uWSGI+Django 某一天,发现服务器返回的response不完整,例如文档大小是200K的,但是只返回了100K给浏览器。 查了一下uWSGI的日志,发现以下错误: 同时查一下Nginx的错误日志,发现: 看来是因为Nginx没有权限操作目录/usr/local/n 阅读全文
posted @ 2016-05-16 18:17 Xjng 阅读(3368) 评论(0) 推荐(0) 编辑
摘要:Python计算斗牛游戏的概率 过年回家,都会约上亲朋好友聚聚会,会上经常会打麻将,斗地主,斗牛。在这些游戏中,斗牛是最受欢迎的,因为可以很多人一起玩,而且没有技术含量,都是看运气(专业术语是 )。 斗牛的玩法是: 1. 把牌中的JQK都拿出来 2. 每个人发5张牌 3. 如果5张牌中任意三张加在一 阅读全文
posted @ 2016-02-12 21:10 Xjng 阅读(8437) 评论(2) 推荐(2) 编辑
摘要:一.垃圾回收机制Python中的垃圾回收是以引用计数为主,分代收集为辅。引用计数的缺陷是循环引用的问题。在Python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存。 encoding=utf 8 __author__ = 'kevinlu1010@qq.com' cl... 阅读全文
posted @ 2016-01-13 19:33 Xjng 阅读(40641) 评论(1) 推荐(7) 编辑
摘要:一.c,ctypes和python的数据类型的对应关系ctypes type ctype Python typec_char char 1 character stringc_wchar wchar_t 1 character unicode stringc_byte char int/longc... 阅读全文
posted @ 2016-01-11 13:03 Xjng 阅读(2951) 评论(0) 推荐(0) 编辑
摘要:开发经常会遇到各种字符串编码的问题,例如报错 `'ascii' codec can't encode characters in position 0 2: ordinal not in range(128)`,又例如显示乱码。 由于之前不知道编码的原理,遇到这些情况,就只能不断的用各种编码deco 阅读全文
posted @ 2016-01-01 22:40 Xjng 阅读(9677) 评论(5) 推荐(1) 编辑
摘要:遍历字典时用与不用iter的区别 遍历字典的时候一般会用这三个方法:keys(),values(),items() 同时,它们各自都有升级版的方法:iterkeys(),itervalues(),iteritems() 区别就是加了iter,获得的数据不是列表,而是一个生成器。 好处就是占用... 阅读全文
posted @ 2015-11-06 20:27 Xjng 阅读(1694) 评论(0) 推荐(0) 编辑
摘要:rq是一个简单的,轻量级的异步任务工具。 如果在网站中用户发起一个用时很久(大于2分钟)的请求,如果用同步的方式,服务器就会返回超时。 这时候就需要用异步请求,用户发起请求后,服务端把作业扔给另一个进程去执行,然后立刻返回给用户,用户再通过轮询或者其他方式来获取作业的执行进度和执行结果。 rq的... 阅读全文
posted @ 2015-10-31 14:05 Xjng 阅读(4517) 评论(0) 推荐(1) 编辑
摘要:如果想多个进程共享同一个cookies,不用每个进程都重新登录,可以就cookies保存到一个文件,然后多个进程直接共享一个锁来实现 1.一个进程登录完成后,把cookies保存到一个文件里面 self.cookies.save(self.cookies_file,ignore_discar... 阅读全文
posted @ 2015-10-22 19:19 Xjng 阅读(902) 评论(0) 推荐(0) 编辑
摘要:"Python官方文档" Python实现多进程间通信的方式有很多种,例如队列,管道等。 但是这些方式只适用于多个进程都是源于同一个父进程的情况。 如果多个进程不是源于同一个父进程,只能用共享内存,信号量等方式,但是这些方式对于复杂的数据结构,例如Queue,dict,list等,使用起来比... 阅读全文
posted @ 2015-10-22 19:19 Xjng 阅读(20744) 评论(0) 推荐(0) 编辑