Python学习记录

Python的创始人为
吉多·范罗苏姆
(Guido van Rossum)

    Python英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象直译式电脑程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    与SchemeRubyPerlTcl动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的操作系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

    Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。

Python支持命令式程序设计面向对象程序设计函数式编程面向侧面的程序设计泛型编程多种编程范式。

Flask webpack 配置相关问题总结

2022年09月22日

最近项目使用 Flask + webpack 的方式开发,模板与后端逻辑代码与路由使用 Flask,前端的一些代码交由 webpack 打包。但是再搭建脚手架的时候存在一些问题,经过研究之后,将这些问题解决,将存在的问题以及解决过程记录下来,以方便有相似需求的人。webpack 的配置可以参考官方文档,再次不再赘述。webpack.config.js 是这样的配置:entry: ['./stati...

Python @unique 装饰器理解

2022年09月16日

Python 枚举(Enum)中 @unique 装饰器主要是:为了检查枚举中是否有重复值。下面是一个示例:from enum import Enum, unique @unique class UserStatus(Enum): active=1 not_active=2 na=1 print(UserStatus(1))我们运行一下结果看看:Tracebac...

python读取大文件的几种方法

2022年09月09日

在 python 中,当我们读取一个本地 TextIO 文件时,最常用的方式是用 read、readline 和 readlines 这三个方法。fp.readlines()with open(fp_name) as f_read: data = f_read.readlines() # The type of data is a list. # output: # ["\...

Python 解析 Nginx access.log 文件

2022年09月07日

最近需要解析 Nginx 文件的日志文件 access.log,找了一下 github 上的开源代码,找到一个项目,地址:NGINX access log parser主要代码如下:def get_requests(self, f): log_line = f.read() pat = (r'' '(\d+.\d+.\d+.\d+)\s-\s-\s' # IP a...

Jinja2 如何访问 Flask 配置变量

2022年09月07日

最近需要在 Jinja2 模板中访问 Flask 配置的变量,Flask config 配置如下:class Config: # 底部版权年份 CURRENT_YEAR = datetime.utcnow().year之后再 Jinja2 模板中显示年份:<li>© {{ config.CURRENT_YEAR }} 版权所有</li>这里直接会显示当前的年份,使用 config 直接...

SQLAlchemy 如何向列增加注释

2022年08月29日

最近在修改模型的时候,有一些字段不是很好理解,需要增加注释,原来使用的是 doc 关键字,关于 SQLAlchemy doc 的解释如下:ORM 可以使用的可选字符串,或者类似于 Python 端的文档属性。该属性不呈现 SQL 注释也就是说,doc 参数之后,可能在文档中呈现这些内容,但是在生成的 SQL 中,并不包含这些内容。下面是一个示例:public = db.Column(db.Bool...

TypeError: can't subtract offset-naive and offset-aware datetimes

2022年08月29日

今天在计算两个时间相减的时候出现了如下错误:TypeError: can't subtract offset-naive and offset-aware datetimes出现错误的原因:不能减去无偏移和有偏移的数据时间,下面是两个时间的样式:结束时间:end_time=datetime.strptime('2023-07-30T16:00:00.000Z', '%Y-%m-%dT%H:%M:%...

数据模型设计的一些总结

2022年08月19日

最近在设计 SQLAlchemy 数据模型的时候,在编写代码的时候,重是需要修改模型,以满足业务的需求。将 SQLAlchemy 数据模型设计的时候,存在的一些规范作为总结,归纳如下:在业务层面,需要根据选择的结果,显示不同的内容,模型里面应该设置 code 作为查询条件,示例:class PaymentMethod(db.Model): __tablename__ = 'payment_m...