SuperAPI AI 工具集

backend-development-python

编程与开发

查看项目

更新于 10-13 16:05

技能介绍

用途

本技能定位为 Python 后端开发专家,面向使用 Python 构建后端服务的开发场景。资料中列出的适用场景包括:现代异步 API(FastAPI)、企业级全栈应用(Django)、轻量级微服务(Flask),并提及 Tornado 作为高并发选项。

技术栈覆盖

资料以技术栈全景的形式列出以下方向:

  • Web 框架:FastAPI(标注为现代)、Django(标注为企业级)、Flask(标注为轻量级)、Tornado(标注为高并发)。
  • 数据层:SQLModel(标注为新一代)、SQLAlchemy(标注为经典 ORM)、Tortoise(标注为异步 ORM)、Beanie(标注为 MongoDB 相关)。
  • 数据验证:Pydantic(标注为类型验证)、Msgspec(标注为超快速)。
  • 浏览器自动化:Playwright(标注为现代首选)、Selenium(标注为经典)、Scrapy(标注为爬虫框架)。
  • 数据库迁移:Alembic(标注为经典)、Aerich(标注为 FastAPI 相关)。
  • 认证授权:JWT(无状态)、OAuth2(第三方)、FastAPI 安全工具。

主要能力与示例

FastAPI 项目结构

资料给出了一套分层项目结构示例,包含 app 目录下的 main.py 应用入口、core(config、security、deps)、models、schemas、api(deps、v1/router.py、endpoints)、services、db(session、init_db)、utils(logger),以及 alembic、tests、.env.example、pyproject.toml、README.md 等。

数据模型与校验

资料展示了基于 SQLModel 的模型定义方式,例如 UserBase 声明 email(index、unique)、name、is_active、is_superuser,User 表模型包含 id 主键、hashed_password、created_at、updated_at,并通过 Relationship 关联 posts。同时给出基于 Pydantic 的 Schema,包括 UserBase(email 使用 EmailStr,name 带长度约束)、UserCreate(password 最小长度 8)、UserUpdate、UserResponse(通过 ConfigDict from_attributes)以及 UserLogin。

CRUD Service 模式

资料给出 UserService 类的示例,包含 get、get_by_email、get_multi、create、update、delete、authenticate 方法,演示了邮箱重复检查、密码哈希、model_validate 与 model_dump、分页 skip/limit、模型字段更新与提交刷新等写法。

认证授权

资料包含 JWT 与 OAuth2 相关示例:通过 passlib 的 CryptContext(bcrypt)进行密码哈希与校验;使用 jose 的 jwt.encode/jwt.decode 创建与验证 token,包含 SECRET_KEY、ALGORITHM(HS256)、过期时间等设置;通过 OAuth2PasswordBearer 与依赖注入实现 get_current_user,并在凭证无效时返回 401。

API 端点

资料给出 users 端点示例,包含获取用户列表(response_model 为 List[UserResponse])、获取当前用户信息(/me)、创建用户(状态码 201)、更新用户(PATCH /{user_id},含 404 处理)等路由写法。

Playwright 浏览器自动化

资料提供了 Playwright 的安装命令(pip install playwright、playwright install、playwright install chromium/firefox/webkit),并给出同步与异步 API 的基础用法。常见操作示例包含:新建 context 并设置 viewport、user_agent;页面导航 goto(wait_until 可取 load、domcontentloaded、networkidle)、go_back、go_forward、reload;多种选择器(CSS、text、xpath、data-testid);输入框 fill、type(delay)、clear;下拉框 select_option;复选框 check/uncheck;上传文件 set_input_files;获取 inner_text、inner_html、get_attribute;等待 wait_for_selector、wait_for_url、wait_for_timeout;执行 JavaScript evaluate;截图与 PDF(仅 chromium);处理弹窗 page.expect_popup 与对话框 expect_dialog(accept/dismiss)。此外还给出并发爬取多个页面的 Scraper 示例,包括通过 page.route 拦截图片、样式、字体等资源以加速加载,使用 query_selector_all 与 query_selector 提取数据,并用 asyncio.gather 并发执行。资料末尾出现表单自动填写小节,但正文在该处被截断。

使用方式

资料以技能说明与技术示例的形式呈现,未提供安装该技能的命令或调用方式,相关信息暂未提供。示例代码均以 Python 源码形式给出,可直接作为开发参考。

适用场景

  • 现代异步 API 开发(FastAPI)
  • 企业级全栈应用开发(Django)
  • 轻量级微服务开发(Flask)
  • 需要数据校验与 ORM 组合的项目(Pydantic、SQLModel、SQLAlchemy)
  • 需要数据库迁移的项目(Alembic、Aerich)
  • 需要 JWT/OAuth2 认证的后端服务
  • 需要浏览器自动化或网页数据采集的场景(Playwright)

限制

资料为技能介绍与代码示例,未说明运行环境版本要求、依赖版本约束、性能基准或安全加固要求;收费方式、价格、平台支持情况均暂未提供。代码中的 SECRET_KEY 示例为占位值,实际使用需自行配置。