随笔分类 - Python系列
发表于 2023-03-10 16:27阅读:151评论:0推荐:0
摘要:SQLAlchemy 是 Python 著名的 ORM 工具包。通过 ORM,开发者可以用面向对象的方式来操作数据库,不再需要编写 SQL 语句。本篇不解释为什么要使用 ORM,主要讲解 SQLAlchemy 的用法。SQLAlchemy 支持多种数据库,除 sqlite 外,其它数据库需要安装第三
阅读全文 »
发表于 2022-12-14 09:58阅读:145评论:0推荐:0
摘要:日常开发中我们会用pip list查看安装了哪些包,直接以列表的形式展示给你,但是你知道某个包依赖于其它哪些包吗?或者你想删除一个包,它对应的依赖包会被同步删除吗?如果你有这些需求,可以继续往下看。 明确项目依赖(pipdeptree) pip list 或 pip freeze 打印出来的依赖有一
阅读全文 »
发表于 2022-12-14 09:46阅读:6489评论:0推荐:1
摘要:问题描述: Python内置的json模块提供了非常完善的Python对象到JSON格式的转换。 json.dumps() # 将Python中的对象转换为JSON中的字符串对象 json.loads() # 将JSON中的字符串对象转换为Python中的对象 这个问题是由于json.dumps()
阅读全文 »
发表于 2022-11-02 09:21阅读:69评论:1推荐:0
摘要:from rest_framework.response import Response # 第一种 class APIResponse(Response): def __init__(self, code=100, msg='成功', status=None, headers=None, **kw
阅读全文 »
发表于 2022-11-02 09:06阅读:55评论:0推荐:0
摘要:import time import datetime import locale class TimeUtil: def __init__(self, curtime=None): self.curtime = curtime def get_timestemp(self): """时间戳"""
阅读全文 »
发表于 2022-09-13 15:35阅读:479评论:0推荐:1
摘要:argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广。 argparse使用比较简单,常用的功能可能较快地实现出来,下面我分几个步骤,以Python3为例,逐渐递
阅读全文 »
发表于 2022-08-30 11:18阅读:449评论:0推荐:0
摘要:整体设计思路是使用字典来进行存储键值对。 过期时间?想要知道一个缓存的 key 是否失效,就必须知道这个 key 是啥时候放进去的,所以需要有一个 put_time 记录; 同时需要设置失效时间,所以还需要一个多长时间失效的 expired 记录; 那么现在的字典格式就变成了: { key: [va
阅读全文 »
发表于 2022-08-30 10:23阅读:843评论:1推荐:2
摘要:const 有什么好处? 最直接的好处是,防止被二次修改导致整个程序崩掉! 第一种方法, 使用enum来定义变量,防止串改. from enum import Enum, unique # 若要不能定义相同的成员值,可以通过 unique 装饰 @unique class Const(Enum):
阅读全文 »
发表于 2022-08-26 16:27阅读:286评论:2推荐:0
摘要:法一: 进入调试模式:python -m pdb xxx.py 法二: 在py文件中导入pdb,然后再想定断点处加上: import pdb;pdb.set_trace() 执行:python xxx.py 走到断点处会自动进入pdb。 pdb单步调试常用命令如下: | 命令 | 解释 | | |
阅读全文 »
发表于 2022-08-26 15:45阅读:265评论:0推荐:1
摘要:单例,顾名思义是一个实例,即在一个项目之中,单例的类只实例化一次。它常常应用于数据库操作、日志函数。 在一个大型项目中使用到日志和数据库操作的地方很多,不能每个文件都去单独实例化一次,此时单例模式就显示出了他的价值。 单例的核心在类的内部方法 __new__(),每次实例化都是通过执行new函数来返
阅读全文 »
发表于 2022-08-26 14:52阅读:255评论:0推荐:1
摘要:一. Celery简介 在程序的运行过程中,我们经常会碰到一些耗时耗资源的操作,为了避免它们阻塞主程序的运行,我们经常会采用多线程或异步任务。比如,在 Web 开发中,对新用户的注册,我们通常会给他发一封激活邮件,而发邮件是个 IO 阻塞式任务,如果直接把它放到应用当中,就需要等邮件发出去之后才能进
阅读全文 »
发表于 2022-08-24 15:31阅读:257评论:0推荐:0
摘要:一,为什么需要 WebSocket? 因为 HTTP 协议有一个缺陷:通信只能由客户端发起。 举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。 这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻
阅读全文 »
发表于 2020-12-09 20:42阅读:655评论:0推荐:0
摘要:>>> 交互式终端中默认的 Python 提示符。往往会显示于能以交互方式在解释器里执行的样例代码之前。 ... 可以是指:交互式终端中输入特殊代码行时默认的 Python 提示符,包括:缩进的代码块,成对的分隔符之内(圆括号、方括号、花括号或三重引号),或是指定一个装饰器之后。Ellipsis 内
阅读全文 »
发表于 2020-11-27 10:46阅读:194评论:0推荐:1
摘要:你并不了解的format、decimal format格式化数字 a = 1.1 b = 3.2 c = a + b print(c) # 4.300000000000001 # format可以格式化数字,第一个参数是数字,第二个参数是想要格式化的数字格式 print(format(c,'0.2f
阅读全文 »
发表于 2020-11-27 10:43阅读:533评论:0推荐:0
摘要:python内存泄露 起因 内存泄露指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。导致程序运行速度减慢甚至系统崩溃等严重后果。有 del() 函数的对象间的循环引用是
阅读全文 »
发表于 2020-11-27 10:40阅读:378评论:0推荐:0
摘要:python3.8的新增功能 本文介绍了与3.7相比,Python 3.8的新功能。有关完整的详细信息,请参见changelog。 Python 3.8已于2019年10月14日发布。 新功能 赋值表达式 有一种新语法:=可将值赋给变量,作为较大表达式的一部分。由于它与海象的眼睛和象牙很像,因此被亲
阅读全文 »
发表于 2020-11-27 10:26阅读:371评论:0推荐:1
摘要:一 介绍 paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用paramiko来现实。 二 下载安装 pip3 install paramiko #在python3中 pycrypto,由于 par
阅读全文 »
发表于 2020-11-27 10:10阅读:113评论:0推荐:1
摘要:一 IO模型介绍 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-bl
阅读全文 »
发表于 2020-11-27 09:54阅读:141评论:0推荐:1
摘要:一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换 + 保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的
阅读全文 »
发表于 2020-11-26 10:00阅读:412评论:0推荐:2
摘要:一 threading模块介绍 multiprocessing模块完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threadin
阅读全文 »