运维后台(Python/Django)编码规范与最佳实践,适用于 ops_api等运维系统开发。编写运维代码、代码审查、编码规范检查、Python Django 开发规范时自动激活。
ops运维后台编码规范
功能概述
ops运维后台编码规范是一项面向实际任务的技能,主要用于通用运维后台 Python/Django 编码规范,适用于所有 ops 系统开发;一、规范范围;
核心要点
- 所有新代码必须遵循 PEP8 编码规范;
- PEP8 规范参考:https://pep8.org/;
- 二、文件头注释(新建 .py 文件时必须);
使用与执行
三、函数 docstring 规范;3.1 代码行数多 → 必须分步说明;3.2 代码行数少 → 简要注释即可;四、PEP8 代码规范。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
结果检查与注意事项
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
ops运维后台编码规范
通用运维后台 Python/Django 编码规范,适用于所有 ops 系统开发。
一、规范范围
- 所有新代码必须遵循 PEP8 编码规范
- PEP8 规范参考:https://pep8.org/
二、文件头注释(新建 .py 文件时必须)
# -*- coding: utf-8 -*-
"""
@File : ${NAME}.py
@Desc : ${DESCRIPTION}
@Author : ${USER}
@Date : ${DATE}
"""
三、函数 docstring 规范
3.1 代码行数多 → 必须分步说明
def sync_server_data(server_id):
"""
同步服务器数据
第一步:校验目标服务器状态
第二步:执行数据导出
第三步:数据传输到目标节点
第四步:更新数据库记录
第五步:发送通知
:param server_id: 服务器ID
:return: bool 是否成功
"""
pass
3.2 代码行数少 → 简要注释即可
def get_server_status(server_id):
"""查询游戏服运行状态"""
return Server.objects.get(id=server_id).status
def disable_user(uid):
"""批量禁用用户"""
User.objects.filter(id=uid).update(is_active=False)
四、PEP8 代码规范
代码在 PyCharm / IDE 里应避免出现黄色波浪线(PEP8 违规提示)。
| 违规 | 错误 | 正确 |
|---|---|---|
| 运算符缺空格 | a+b |
a + b |
| 逗号后缺空格 | def f(a,b) |
def f(a, b) |
| 单行过长 | 超过120字符 | 换行或拆分 |
| import 顺序错误 | 先 import 第三方 | 标准库 → 第三方 → 本地 |
格式化:每次完成后用 IDE reformat(Ctrl+Alt+L / Cmd+Option+L),再提交。
五、Django + Celery 事务规范(高危!)
5.1 事务内调用异步任务的坑
transaction.atomic() 上下文内的 SQL 不会自动提交给 Celery 异步任务。异步任务在独立数据库连接中执行,不受当前事务影响。
❌ 错误:
with transaction.atomic():
Task.objects.create(...)
async_task.delay(...) # 事务回滚,但任务已在独立连接执行
✅ 正确:
with transaction.atomic():
Task.objects.create(...)
# 事务提交后再触发
async_task.delay(...)
5.2 异步任务路由
@app.task(queue='high_priority')
def critical_task():
pass
@app.task(queue='default')
def normal_task():
pass
六、日志轮转规范(防止磁盘撑爆)
所有 Web 服务必须配置日志轮转。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'INFO',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': '/var/log/ops_api/app.log',
'when': 'midnight',
'interval': 1,
'backupCount': 30,
},
},
'root': {
'handlers': ['file'],
'level': 'INFO',
},
}
七、Django Admin 命令 vs 离线脚本
| 场景 | 推荐方式 |
|---|---|
| Web 后台触发的运维动作 | Django Admin 命令(management/commands/) |
| 纯定时任务(crontab) | 离线脚本 |
| 需要版本控制 | Django Admin 命令 |
八、敏感信息过滤(必须遵守!)
| ❌ 禁止 | ✅ 正确做法 |
|---|---|
| 硬编码密码/密钥/Secret 在代码中 | 使用环境变量 ${VAR} 或配置文件读取 |
| 在日志中打印敏感字段 | 过滤或脱敏处理 |
| 在错误信息中暴露内部路径/接口 | 返回通用错误信息 |
示例:
# ❌ 硬编码
API_KEY = "sk-xxxxx-secret"
# ✅ 环境变量
API_KEY = os.environ.get("API_KEY", "")
# ❌ 日志打印敏感信息
logger.info(f"password={password}")
# ✅ 脱敏打印
logger.info(f"user_id={user_id}, action=login")
九、不要做什么
| ❌ 禁止 | ✅ 正确做法 |
|---|---|
| 事务内直接调用 Celery 异步任务 | 事务提交后再触发 |
| 硬编码密码/密钥在代码中 | 环境变量或安全存储 |
| 不格式化代码就提交 | Ctrl+Alt/L 格式化后提交 |
| 代码有黄色波浪线不处理 | 立即修复 PEP8 违规 |
| 在生产代码中暴露内部接口信息 | 统一错误返回值 |
把 .git 目录部署到生产 |
部署前删除 |
十、自检清单
每次提交前检查:
- ✅ 无 PEP8 黄色/红色波浪线
- ✅ 每个函数有 docstring
- ✅ Ctrl+Alt+L 格式化后提交
- ✅ 事务 + 异步任务场景已考虑
- ✅ 无硬编码敏感信息
- ✅ 日志配置了轮转
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
最新文章
