Python
__Jack
The more you know, the more you don't understand
展开
-
Python数据类型之间的转换
Python数据类型之间的转换函数描述int(x [,base])将x转换为一个整数long(x [,base] )将x转换为一个长整数float(x)将x转换到一个浮点数complex(real [,imag])创建一个复数s转载 2018-01-25 14:05:07 · 466 阅读 · 0 评论 -
选择ipython替代python的理由
最近需要跑些脚本,发现原生的Python shell不具有tab提示功能,发现一篇好文,记录一下。python shell与ipython的区别:(1) python shell不能在退出保存历史;ipython历史记录自动保存: 保存在history.sqlite文件下:可用“”、“”、“”调用最近三次记录;(2) python shell不支持tab自动补全;...转载 2018-08-13 13:57:44 · 1248 阅读 · 0 评论 -
python全局变量、局部变量&类属性、实例属性
由于这几个变量比较容易混淆,下面总结一下。全局变量: 在一个py文件或者一个模块或者包中,但不在类中、不在函数内中的变量。局部变量 在函数内、在class的方法内(未加self修饰),这就是局部变量静态变量/类变量 在class内的,但不在class的方法内的,这就是静态变量/类变量(并且作为类被导入时,类变量是被初始化的)实例变量 在class的方法内的,用self修饰的...原创 2018-09-12 09:20:19 · 2431 阅读 · 0 评论 -
flask-migrate 更改表字段类型、字段长度
最近在开发过程中遇到了需要将string类型转换成bool类型的问题,但是一开始设计表是设计成了string类型,因此记录下flask-migrate更改表字段类型的方式。alembic支持检测字段长度改变,不过它不是默认的,需要配置; 找到migrations/env.py文件,在run_migrations_online函数加入如下内容: context.configur...原创 2018-09-16 09:31:38 · 3924 阅读 · 7 评论 -
restful设计指南-使用swagger 生成 Flask RESTful API
什么是 RESTful什么是REST REST(英文:Representational State Transfer,又称具象状态传输)。REST 的核心是可编辑的资源及其集合,用符合 Atom 文档标准的 Feed 和 Entry 表示。每个资源或者集合有一个惟一的 URI。系统以资源为中心,构建并提供一系列的 Web 服务。在 REST 中,开发人员显式地使用 HTTP 方法,对...转载 2018-09-16 11:02:25 · 2000 阅读 · 0 评论 -
Python with语句定义及使用
如果你有一些对象(比如一个文件、网络连接或锁),需要支持 with 语句,下面介绍两种定义方法。方法(1):首先介绍下with 工作原理 (1)紧跟with后面的语句被求值后,返回对象的“__enter__()”方法被调用,这个方法的返回值将被赋值给as后面的变量; (2)当with后面的代码块全部被执行完之后,将调用前面返回对象的“__exit__()”方法。 with工作原理...原创 2018-09-10 09:07:10 · 13190 阅读 · 0 评论 -
python属性访问顺序 --描述符、__getattr__()
在Python中,访问一个属性的优先级顺序按照如下顺序:1、_getattribute_()2.类属性3.数据描述符4.实例属性5.非数据描述符6.__getattr__()方法需要注意的是:类属性和实例属性属于不同的属性集,因此这里类属性排序并不严谨。首先来说下什么是描述符。官方的定义:描述符是一种具有“捆绑行为”的对象属性。访问(获取、设置和删除)它的属性时,实际是调用特殊的...原创 2018-11-09 09:59:42 · 2163 阅读 · 0 评论 -
python执行系统命令常用方法(subprocess、os、commands)
一、subprocess模块 (-- Python3.x)使用 subprocess.check_output() 函数。例如:import subprocessout_bytes = subprocess.check_output(['netstat','-a'])这段代码执行一个指定的命令并将执行结果以一个字节字符串的形式返回。如果你需要文本形式返回,加一个解码步骤即可。例如:o...原创 2018-12-30 23:25:46 · 2668 阅读 · 0 评论 -
python kill process两种思路
使用subprocess库执行shell操作。一、直接使用shell杀进程import subprocesssubprocess.check_output("for p in `lsof -n -i:8080 | grep LISTEN | awk '{print $2}'`; do kill -9 $p; done", shell=True)二,先拿到进程号,在killport = ...原创 2018-12-31 01:27:16 · 6079 阅读 · 0 评论 -
python os 设置读取环境变量的几种方法
项目中的跳板机是用的用户公私钥鉴权的,登录跳板机需要使用的每个人的name,因此如果将封装的MySQL或者Redis方法中传入USERNAME作为参数的话,感觉有点傻。因此,考虑将名字写入环境变量。 两种方法: 1、使用os.environ.setdefault方法写入(或者直接写入~/.bash_profile等一系列文件中,注意访问权限的问题),os.getenv读取: ...原创 2018-08-13 12:10:09 · 14802 阅读 · 0 评论 -
深刻理解Python中的元类(metaclass)
译注:这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是e-satis同学给出了神一般的回复,更有人评论说这段回复应该加入到Python的官方文档中去。以下就...转载 2018-06-22 09:37:32 · 1039 阅读 · 0 评论 -
PYTHON之SSH远程登录
一、SSH简介 SSH(Secure Shell)属于在传输层上运行的用户层协议,相对于Telnet来说具有更高的安全性。 二、SSH远程连接 SSH远程连接有两种方式,一种是通过用户名和密码直接登录,另一种则是用过密钥登录。 1、用户名和密码登录 花花1要在自己的主机登录花花2的电脑,她可以通过运行以下代码来实现import paramikossh = paramiko.SSHCl...转载 2018-02-27 18:55:52 · 4279 阅读 · 0 评论 -
python 通过SSHTunnelForwarder隧道连接redis
背景:我司Redis服务器使用的亚马逊服务,本地需要通过跳板机,然后才有权限访问Redis服务。连接原理:使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本地开启一个转发端口给跳板机远程Redis服务使用。两种思路:1、通过SSHTunnelForwarder,paramiko模块,先ssh到跳板机,然后在跳板机上(或者内部服务器上),获取到权限,然后远程Redi...原创 2018-02-28 20:34:09 · 11947 阅读 · 1 评论 -
python 使用mysqldb模块通过SSHTunnelForwarder隧道连接mysql
python 使用mysqldb模块通过SSHTunnelForwarder隧道连接mysql(1)出于安全考虑,数据库服务器只允许堡垒机通过ssh访问,这对日常的使用带来了麻烦。昨天的工作中,就遇到了这样的问题,MySQL数据库放在了服务器A上,只允许服务器B来访问,而我在机器C上,可以通过ssh连接服务器B。为了解决在机器C上连接mysql这个问题如下图所示:(2)talk is cheap,...转载 2018-02-28 20:37:48 · 2054 阅读 · 0 评论 -
Python Requests throwing SSLError
首先说明一点:SSLError的报错与Python版本无关(Python2.7和Python3都存在这个问题,解决办法一样)。CA 证书Requests 默认附带了一套它信任的根证书,来自于 Mozilla trust store。然而它们在每次 Requests 更新时才会更新。这意味着如果你固定使用某一版本的 Requests,你的证书有可能已经 太旧了。从 Requests 2.4.0 版之...原创 2018-04-09 10:13:43 · 1710 阅读 · 0 评论 -
【flask】flask-restful和jsonify编码问题
在做web开发的时候经常会遇到返回中文字符串的问题,到浏览器中就会被转码,因此记录下解决方法。代码如下:@bp.route('/logout')def logout(): if 'user_uid' in session: session.pop('user_uid') return redirect(url_for('home.index')) ...原创 2018-05-19 09:44:56 · 2709 阅读 · 0 评论 -
关于decimal模块-Decimal之后取整的问题
本文只是记录一下工作中遇到的坑,详情请移步https://docs.python.org/2/library/decimal.html关于计算1/3*3问题:1、首先支付计算金额需要用到decimal库,models默认DecimalField类型from decimal import DecimalDecimal(1.00) / Decimal(3.00) * 3Decimal('0.99999...原创 2018-05-15 09:33:50 · 5729 阅读 · 1 评论 -
python进程线程详解
如下是目录结构:多进程 multiprocessing进程池 Pool子进程进程间通信进程小结多线程Lock多核CPUThreadLocal进程 vs. 线程线程切换计算密集型 vs. IO密集型异步IO分布式进程对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启...转载 2019-05-29 08:25:21 · 412 阅读 · 0 评论