python

【Python】 使用pymysql模块通过ssh隧道连接mysql

通常运维为了保证数据库安全,不会允许直接连接数据库,需要通过SSH隧道去连接服务器背后的数据库。下面直接上代码: import pymysql from sshtunnel import SSHTunnelForwarder if __name__ == '__main__': server = SSHTunnelForwarder( ssh_address_or_host=('<服务器地址>', 22), # 指定ssh登录的跳转机的address ssh_username='root', # 跳转机的用户 ssh_password='ZHIrensha123456',

  • zgljl2012
1 min read
python

【区块链】使用Python创建你的区块链 1 - Blockchain

参考自:Learn Blockchains by Building One [https://hackernoon.com/learn-blockchains-by-building-one-117428612f46] 数字货币的崛起在这些年无比惊艳,区块链这个本来陌生的概念这两年,尤其是今年以来甚至都要盖过了人工智能。但对于不懂密码学、不懂共识协议、也不怎么敢炒币的同学来说,怎么样了解这一新兴的概念以让自己不被时代淘汰,怎么样让心里那一小小的对风口的渴望成为现实,也就是,**怎么样了解区块链的本质,以将这种技术落地转换成真正的商业模式?**相信,这是很多同学都想要知道的问题。 而想要深刻的理解区块链到底是个东西,办法很简单,知行合一,做一个出来。 准备 预备知识 阅读本文,需要读者对Python有基本的理解,能读写基本的Python,并且需要了解HTTP网络协议。

  • zgljl2012
8 min read
python

【Python】使用with上下文实现计时

在Python常常需要记录一段代码运行了多长时间,普通的一般用两个time.time() ,然后计算差值;高级一点的,就是写一个计时装饰器,用装饰器包裹方法,记录运行时间,但这这意味着你的代码需要写在函数里,然后才能使用此计时装饰器。 今天我要介绍的是一种可以给一段代码计时,而不是一个函数计时的方便的、“高级的”的Python计时方法。 代码如下: import time from contextlib import contextmanager @contextmanager def timer(name): start = time.time() yield print(f'[{name}] done

  • zgljl2012
1 min read
python

【Python 3.x】xmlrpc模块使用教程

RPC是远程过程调用,XML-RPC [https://baike.baidu.com/item/XML-RPC/10888726?fr=aladdin] 是一种使用xml文本的方式利用http协议传输命令和数据的RPC机制。 在Python 3.x中,我们也可以使用xmlrpc 模块编写程序,让该程序与可与其它任何语言编写的XML-RPC服务器实现远程过程调用。 服务端编写 开启一个终端,输入ipython,然后输入下面的服务端代码: from xmlrpc.server import SimpleXMLRPCServer server = SimpleXMLRPCServer(("localhost", 8080), allow_none=

  • zgljl2012
1 min read
python

【Django】queryset实现按指定字段的值进行排序

最近碰到一个需求,要对用户的学历进行排序,也就是按照['中专及以下', '高中', '大专', '本科', '硕士', '博士'] 的顺序进行排序,这就需要使用Django的ORM实现按指定字段的值进行排序。 1、 MySQL中的SQL语句的语法: select * from user_education where user_id = 1 ORDER BY FIELD(degree, '中专及以下', '高中', '大专', '本科', '硕士', '博士') DESC 2、

  • zgljl2012
1 min read
python

Python装饰器

装饰器模式是一个强大的模式,可以给一个函数增加额外的方法而不用修改原来的代码。比如,当我们需要给原来的代码添加日志记录时,需要将原来的代码进行修改,在函数里面增加日志记录的代码。但如果使用装饰器模式,使用装饰器装饰原来的代码,将日志记录放在装饰器里,就可以避免修改原有代码,同时又实现了所需的功能。这种编程模式就叫做面向切面编程。 日志记录实例 比如,我们有一个函数func: def func(): print('func') 现在,我们需要记录一下这个函数执行时的日志记录,即记录一下函数执行的时间,输出执行时间和方法名。日志输出函数如下: from datetime import datetime as dt def log(func)

  • zgljl2012
4 min read
zgljl2012@gmail.com