Poetry 介绍与使用指南

什么是 Poetry? Poetry 是一个现代化的 Python 依赖管理和打包工具,旨在取代 pip、virtualenv、setup.py 和 requirements.txt,提供更好的依赖管理体验。 Poetry 解决了 pipenv 的性能问题,并且支持包发布,适合 Python 项目和库的开发。 Poetry 的特点 ✅ 一体化管理:同时管理依赖、虚拟环境和 Python 包发布。 ✅ 自动解析依赖:避免版本冲突,解析速度比 pipenv 更快。 ✅ 基于 pyproject.toml:符合 PEP 518 规范,取代 setup.py 和 requirements.txt。 ✅ 锁定依赖:使用 poetry.lock 确保项目可复现。 ✅ 内置虚拟环境:无需手动管理 venv,自动创建隔离环境。 ✅ 发布 Python 包:一键发布到 PyPI (poetry publish)。 安装 Poetry 官方推荐 curl -sSL https://install.python-poetry.org | python3 - 安装完成后,建议将 poetry 添加到 PATH: export PATH="$HOME/.local/bin:$PATH" 使用 pip pip install poetry 验证安装 poetry --version 创建和管理项目 创建新项目...

三月 10, 2025 · 2 分钟 · 蓝胖

SQLModel 简介

SQLModel 是一个基于 Python 的 ORM(对象关系映射)库,它结合了 SQLAlchemy 和 Pydantic 的优势,旨在简化与数据库的交互。SQLModel 主要用于构建与数据库交互的 Python 应用,特别适用于 FastAPI 等 Web 框架。 SQLModel 的特点 基于 SQLAlchemy:SQLModel 是 SQLAlchemy 的一个高级封装,提供更简单的 API。 集成 Pydantic:内置数据校验功能,可以自动解析和校验数据类型。 简单易用:相比 SQLAlchemy,SQLModel 代码更少,更易读。 支持同步和异步:既可以使用同步方式,也可以结合 async 进行异步数据库操作。 自动生成数据库表:支持通过 Python 类定义数据库模型,并自动生成表结构。 SQLModel 安装 pip install sqlmodel 使用示例 1. 定义数据模型 SQLModel 使用 Python 的 dataclass 风格定义数据库模型: from sqlmodel import SQLModel, Field class User(SQLModel, table=True): id: int = Field(default=None, primary_key=True) name: str age: int • table=True 表示这是一个数据库表。 • Field() 允许设置主键、默认值等字段属性。...

三月 9, 2025 · 1 分钟 · 蓝胖

Alembic 使用手册

Alembic 是一个用于 SQLAlchemy 的数据库迁移工具,适用于 Python 项目。它支持版本控制数据库模式,并提供灵活的迁移管理方式。 安装 Alembic 使用 pip 安装: pip install alembic 初始化 在项目目录下执行: # 这里 alembic 为目录名,可以设置为其他 alembic init alembic 这将创建 alembic 目录及 alembic.ini 配置文件,结构如下: /your_project /alembic /versions # 存放迁移文件 env.py # 迁移环境配置 script.py.mako # 迁移脚本模板 alembic.ini # Alembic 配置文件 配置数据库连接 在 alembic.ini 中修改 sqlalchemy.url: # 默认配置,文件路径 script_location = alembic sqlalchemy.url = postgresql://user:password@localhost/dbname 修改 env 配置 在 alembic/env.py 修改: from myapp.models import Base # 导入 SQLAlchemy Base # 默认为 None target_metadata = Base....

三月 6, 2025 · 1 分钟 · 蓝胖

Uvicorn 简介

Uvicorn 是一个基于 ASGI(Asynchronous Server Gateway Interface) 的超快、轻量级 Web 服务器,专为 Python 异步框架(如 FastAPI 和 Starlette)设计。它基于 uvloop 和 httptools,提供 高并发 和 低延迟 的性能。 核心特性 ✅ 超快性能:使用 uvloop 提供高效的事件循环,性能比传统 WSGI 服务器(如 Gunicorn)更强。 ✅ 异步支持:天然支持 async/await,适用于 FastAPI、Starlette 等异步框架。 ✅ WebSocket & HTTP/2:支持 WebSocket 连接和 HTTP/2 协议。 ✅ 自动重载:开发环境下支持 –reload 自动重启,提升开发效率。 ✅ 多进程支持:可与 Gunicorn 结合运行,提升并发能力。 Uvicorn 安装 pip install uvicorn Uvicorn 运行 FastAPI 先安装 fastapi pip install fastapi 创建一个简单的 FastAPI 应用 main.py: from fastapi import FastAPI app = FastAPI() @app....

三月 5, 2025 · 2 分钟 · 蓝胖

python爬虫之Pyvirtualdisplay

前面已经介绍了通过selenium来模拟对浏览器的操作,但是必须依赖图形化才能实现。如果想在命令行页面的centos上实现爬取,就需要安装Pyvirtualdisplay来模拟。 ...

二月 28, 2018 · 1 分钟 · 蓝胖

python爬虫之验证码

对于验证码,有太多的形式和复杂度,需要对特定验证码对对应的处理,才可能识别。这里主要介绍pytesseract的使用。 ...

二月 27, 2018 · 2 分钟 · 蓝胖

Python爬虫之Phantomjs

PhantomJS是一个基于webkit的无头浏览器,没有界面但可以像浏览器解析网页,功能非常强大。 PhantomJS官方参考文档:http://phantomjs.org/documentation/ ...

二月 22, 2018 · 1 分钟 · 蓝胖

Python爬虫利器之Selenium

selnium是一款很强大的浏览器自动化测试框架,直接运行在浏览器端,模拟用户操作,它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器及PhantomJS之类的无头浏览器。 Selnium官方参考文档:http://selenium-python.readthedocs.io/index.html 推荐一篇介绍Selnium的博客:https://cuiqingcai.com/2599.html ...

二月 19, 2018 · 2 分钟 · 蓝胖

python爬虫之自动登录和Cookie的使用

前面已经介绍了通过post账号密码登录网页,下面重点介绍Cookie的使用 ...

二月 18, 2018 · 1 分钟 · 蓝胖

python爬虫利器之urllib

Urllib是Python提供的一个用于操作URL的模块,常用于网页的爬取。这里的环境为python3,如果是python2用法稍有不同。 ...

二月 18, 2018 · 2 分钟 · 蓝胖