讲师中心 微信公众号
AI工具推荐 视频效率加速

Ops Coding Standards

Polar Sponsor
爱发电 赞助
.NET 9.0

运维后台(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 目录部署到生产 部署前删除

十、自检清单

每次提交前检查:

  1. ✅ 无 PEP8 黄色/红色波浪线
  2. ✅ 每个函数有 docstring
  3. ✅ Ctrl+Alt+L 格式化后提交
  4. ✅ 事务 + 异步任务场景已考虑
  5. ✅ 无硬编码敏感信息
  6. ✅ 日志配置了轮转
目录

热门AI工具

更多
创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

0

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

0

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

0

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

0

2026.10.22

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

0

2026.10.22

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

0

2026.10.22

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn