• 人生如棋,落子便无悔
  • 天生带来允许,文化造成封闭
  • 话说出口前,你是它的主人,说出口之后,就是它的奴隶
  • 许多今日之心心念念,无非是来年之付诸一笑。
  • 愿你在所得少于付出时,不会终日愤愤;愿你在多得超过付出时,不必终日惶恐。
  • 与人争,无论时力还是理,终有不足处、输人处,一生一世都难得圆满。
  • 天下风俗,各有其理。

Python基础练习+实践代码

Python中的代码都是在3.6+上实现的,代码基础部分来自《Python编程快速上手 让繁琐工作自动化》和《learning python》,实践部分是根据工作在特定环境下需要写的。

终端向 Python 传递代码的方式

在终端执行 Python 代码的常用方式。1.通过 stdin 和 管道echo "print('hi')" | python将文件重定向到Pythonpython < spam.py2.通过 -c 如果你只需要快速检查某些内容,则可以在命令行中将代码作为字符串传递。python -c "print('hi')"当需要检查仅一行或两行代码时,使用它更方便,而不是启动REPL。3.文件路径将代码传递给python的最常用的方法可能是通过文件路径。python app.py4.以包的形式,使用 ......

Flask 在 Gunicorn 中日志记录没有保存的问题

问题:在使用 flask 开发中,python 标准 logging 模块可以正常使用,保存日志到文件中。将项目部署到服务器,使用 gunicorn 作为容器时,日志信息并没有保存到文件。原因:gunicorn 有自己的日志,使用 gunicorn 作为容器时,gunicorn 用的是自身的。解决:在 flask 中也使用 gunicorn 的日志,而不要使用自己定义的 logging,或者 flask 的 logging。gunicorn 中定义了两种日志:gunicorn.error 和 gu......

Python 时间模版:加减一段时间再转成时间戳

需求:用当前时间添加一段时间,再转换成时间戳与其它时间戳进行比较。1.当前时间戳>>> import time >>> time.time() 1589880103.00106242.当前时间加上1小时>>> import datetime >>> td = datetime.timedelta(hours=1) >>> t = datetime.datetime.now() + td datetime.da......

Python requests proxy socks5 OSError: [Errno 0] Error

在使用 Python requests 设置 socks5 代理请求时,抛出异常:OSError: [Errno 0] ErrorError: Traceback (most recent call last):   File "E:\python\3.7\epub\venv\lib\site-packages\urllib3\connectionpool.py", line 677, in urlopen     chunked=chunked,   Fil......

Python 不可不知的 Socket 通信

Socket API 是用来通过网络传递信息的,也为进程间通信提供一种形式。最常见的 socket 程序就是 client-server 应用程序,下面在同一主机上进程之间进行通信。首先,了解 socket 的 server 端和 client 端 api。Socket APIPython 的 socket 模块提供了 socket api 的接口。主要的方法:socket()bind()listen()accept()connect()connect_ex()send()recv()close()pyth......

Python格式化字符串新语法:f-strings

从Python3.6开始,引入了一个新的格式化字符串方式:f-strings。它与之前的格式化方法相比,更具可读性,代码更简洁,不易出错,并且速度更快。python之前的格式化字符串方式在python3.6之前,主要有两种方式格式化字符串:%-formatting 和 str.format()。%-formatting这是python最开始内置的格式化方式,但现在它已不被官方推荐使用,因为它容易引发错误。>>> name = "zh" >>> "Hello, %s" %......

Python Timer:三种监控你程序运行时间的方式

很多开发者知道Python是一个开发效率很高的编程语言,纯Python程序对比其它编译型语言如:C、Rust、或Java可能运行很慢。通过这篇教程,你将看到如何使用Python timer去监控你程序运行的速度。Python Timers首先,看一下本篇教程中会使用到的代码。随后你将添加Python Timer到程序中去监控它们的性能。你也将看到测量运行时间的一些简单方式。Python Timer Functions如果你看过Python内置的time模块,那么你应该知道测量时间的一些方法:monotoni......

Python 日志模块

logging in pythonLogging是程序员非常有用的工具,它可以帮助你理解程序运行的流程,也可以存储信息,如:user信息或访问者的IP地址等。如果一个错误发生,它可以提供比堆栈追踪更多的信息,告诉你程序在到达错误行代码前程序的状态。在对的位置记录有用的数据,你不仅可以更容易debug errrors,还可以分析程序的性能问题。python的标准库提供了logging系统,所以可以在程序中快速使用logging。python中logging模块python中日志记录模块是一个易于使用且功能强大......

Gunicorn Flask中使用项目名或给URL加固定前缀

Flask中URL地址匹配是通过装饰器完成:@app.route('/')现在需要给所有URL加上项目名称或前缀:@app.route('/project') # or @app.route('/prefix/abc')将项目名称或前缀放在app全局变量中,每个URL都拼接当然可以,但有更方便的方式:SCRIPT_NAME="/xs" gunicorn -w 1 -b 127.0.0.1:8080 app:appSCRIPT_NAME是gunicorn支持的环境变量,将Flask项目部署在gunicor......

练习:从一组Zip Codes码中匹配指定Zip Code码

说明Zip Code码是5位数字编码需求从下面10个Zip codes中获取以44开头的Zip Code码。03824531449411615213441829505344272752010217443235注意2445644132上面是2个Zip Code码:24456 和 44132。所以匹配结果是 44132。44564是错误匹配技巧保证Zip Code都是5的倍数程序def main():     # 44开头的编码(ZIP Codes是5位数编码)   &nbsp......
1 2 3 ... 14