PyCharm文件模板配置的完整指南

 更新时间:2025年07月28日 09:09:39   作者:Yant224  
这篇文章主要介绍了PyCharm文件模板配置的全流程,涵盖模板创建、变量使用(如日期、用户名)、LiveTemplates设置、团队共享及最佳实践,通过统一代码结构提升开发效率,需要的朋友可以参考下

实现创建文件时自动添加自定义模板

一、完整配置流程

1. 打开模板设置

2. 配置全局模板

File and Code Templates 界面:

  • Files 标签页:设置各类文件模板
  • Includes 标签页:创建可复用的模板片段
  • Code 标签页:设置代码片段模板

3. 创建 Python 文件模板

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : ${DATE} ${TIME}
# @Author  : ${USER}
# @File    : ${NAME}.py
# @Software: ${PRODUCT_NAME}

"""
${DESCRIPTION}
"""

import os
import sys

def main():
    pass

if __name__ == '__main__':
    main()

4. 添加自定义变量

变量描述示例
${DATE}当前日期2023-07-26
${TIME}当前时间14:30
${USER}系统用户名john
${NAME}文件名(不含扩展名)my_script
${PRODUCT_NAME}PyCharm 产品名PyCharm
${YEAR}当前年份2023
${MONTH}当前月份07
${DAY}当前日期26
${HOUR}当前小时14
${MINUTE}当前分钟30

5. 创建 Django 模型模板

# ${NAME}.py
from django.db import models

class ${ModelName}(models.Model):
    """${Description}"""
    
    # 字段定义
    created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    updated_at = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    
    class Meta:
        verbose_name = '${VerboseName}'
        verbose_name_plural = '${VerboseNamePlural}'
        ordering = ['-created_at']
        
    def __str__(self):
        return f"{self.id}"

# 以下为自动生成的代码

二、高级模板配置

1. 创建模板片段(Includes)

# File Header.py
"""
test includes
"""

2. 使用模板片段

# Python Script
#parse("File Header.py")

import os
import sys

def main():
    pass

if __name__ == '__main__':
    main()

3. 条件模板

#if (${NAME} == "models")
from django.db import models
#else
import os
import sys
#end

4. 自定义变量

#set($ModelName = ${NAME.substring(0,1).toUpperCase()} + ${NAME.substring(1)})
class ${ModelName}(models.Model):
    pass

三、模板示例集

1. Django View 模板

#parse("File Header.py")

from django.views import View
from django.http import JsonResponse

class ${ClassName}(View):
    """${Description}"""
    
    def get(self, request, *args, **kwargs):
        return JsonResponse({'status': 'ok'})
    
    def post(self, request, *args, **kwargs):
        return JsonResponse({'status': 'created'}, status=201)

2. Django Form 模板

#parse("File Header.py")

from django import forms

class ${FormName}(forms.Form):
    """${Description}"""
    
    # 字段示例
    name = forms.CharField(
        max_length=100,
        label='名称',
        widget=forms.TextInput(attrs={'class': 'form-control'})
    )
    
    def clean_name(self):
        # 自定义验证
        name = self.cleaned_data['name']
        if len(name) < 3:
            raise forms.ValidationError("名称太短")
        return name

3. Django ModelAdmin 模板

#parse("File Header.py")

from django.contrib import admin
from .models import ${ModelName}

@admin.register(${ModelName})
class ${ModelName}Admin(admin.ModelAdmin):
    """${Description}"""
    
    list_display = ('id', 'created_at')
    list_filter = ('created_at',)
    search_fields = ('id',)
    date_hierarchy = 'created_at'
    
    fieldsets = (
        (None, {
            'fields': ('created_at', 'updated_at')
        }),
    )

四、自动生成工具

1. 使用 Live Templates

# 创建 Django 模型字段模板
# Abbreviation: df
# Description: Django field
# Template text:
$FIELD_NAME$ = models.$FIELD_TYPE$($PARAMS$)

2. 配置 Live Templates

打开 Settings > Editor > Live Templates

创建 Python 组

添加新模板:

  • Abbreviation: df
  • Description: Django field
  • Template text:
${FIELD_NAME} = models.${FIELD_TYPE}(${PARAMS})

定义变量:

  • FIELD_NAME: suggestVariableName()
  • FIELD_TYPE: complete()
  • PARAMS: defaultValue("")

五、团队共享模板

1. 导出模板

2. 导入模板

3. 版本控制

# 模板文件位置
~/.config/JetBrains/PyCharm2023.1/templates

六、模板变量全集

变量描述示例
${NAME}文件名(不含扩展名)my_view
${PACKAGE_NAME}包名myapp.views
${PROJECT_NAME}项目名MyDjangoProject
${USER}当前用户john
${DATE}当前日期2023-07-26
${TIME}当前时间14:30
${YEAR}当前年份2023
${MONTH}当前月份07
${DAY}当前日期26
${HOUR}当前小时14
${MINUTE}当前分钟30
${SECOND}当前秒数45
${PRODUCT_NAME}IDE 名称PyCharm
${MONTH_NAME_FULL}月份全名July
${MONTH_NAME_SHORT}月份缩写Jul
${DS}美元符号$

七、最佳实践建议

1. 模板设计原则

  • 简洁性:只包含必要元素
  • 一致性:团队统一模板风格
  • 实用性:包含常用导入和结构
  • 可扩展性:使用 Includes 片段

2. 推荐模板结构

# 文件头
#parse("File Header.py")

# 导入区
import os
import sys

# 主逻辑
def main():
    pass

# 执行入口
if __name__ == '__main__':
    main()

3. 动态模板技巧

#if (${PACKAGE_NAME} == "models")
from django.db import models
#elseif (${PACKAGE_NAME} == "views")
from django.views import View
#end

八、常见问题解决

1. 模板不生效

  • 检查文件类型匹配
  • 确认模板名称正确
  • 重启 PyCharm

2. 变量不解析

  • 使用正确的大写格式 ${VAR}
  • 检查变量名拼写
  • 确保变量在作用域内

3. 多级目录模板

# 在特定目录创建模板
# 右键目录 > New > Edit File Templates

总结

配置 PyCharm 文件模板的完整流程:

  1. 打开设置File > Settings > Editor > File and Code Templates
  2. 选择文件类型:在 Files 标签页选择 Python Script
  3. 编写模板:使用变量和逻辑控制
  4. 添加 Includes:创建可复用片段
  5. 保存应用:点击 OK 保存设置

高级技巧:

  • 使用 #parse 指令组合模板
  • 通过 #if 实现条件模板
  • #set 定义自定义变量
  • 配置 Live Templates 快速生成代码片段

通过合理配置模板,您可以:

  • 统一代码风格
  • 减少重复工作
  • 提高开发效率
  • 确保最佳实践

以上就是PyCharm文件模板配置的完整指南的详细内容,更多关于PyCharm文件模板配置的资料请关注脚本之家其它相关文章!

相关文章

  • 基于opencv对高空拍摄视频消抖处理方法

    基于opencv对高空拍摄视频消抖处理方法

    这篇文章主要介绍了基于opencv对高空拍摄视频消抖处理,首先对视频进行抽第一帧与最后一帧,为什么抽取两帧?这样做的主要目的是,我们在做帧对齐时,使用帧中静态物的关键点做对齐,需要的朋友可以参考下
    2022-10-10
  • Python动刷新12306火车票的代码(附源码)

    Python动刷新12306火车票的代码(附源码)

    这篇文章主要介绍了Python动刷新12306火车票的完整代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-01-01
  • Python快速生成随机密码超简单实现

    Python快速生成随机密码超简单实现

    这篇文章主要介绍了Python快速生成随机密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 如何使用 Pylint 来规范 Python 代码风格(来自IBM)

    如何使用 Pylint 来规范 Python 代码风格(来自IBM)

    本文通过详细的理论介绍和简单易懂的实例全面介绍了 Python 代码分析工具 Pylint。相信读者看完后一定可以轻松地将 Pylint 运用到自己的开发工程中
    2018-04-04
  • Pycharm下载pyinstaller报错:You should consider upgrading via the 'python -m pip install --upgrade pip' command的解决方法

    Pycharm下载pyinstaller报错:You should consider upgrading via

    这篇文章主要给大家介绍了关于Pycharm下载pyinstaller报错:You should consider upgrading via the 'python -m pip install --upgrade pip' command的解决方法,需要的朋友可以参考下
    2022-02-02
  • python函数之任意数量的实参方式

    python函数之任意数量的实参方式

    这篇文章主要介绍了python函数之任意数量的实参方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python多线程与异步处理在HTTP请求中的应用方式

    Python多线程与异步处理在HTTP请求中的应用方式

    这篇文章主要介绍了Python多线程与异步处理在HTTP请求中的应用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 解决pytorch 损失函数中输入输出不匹配的问题

    解决pytorch 损失函数中输入输出不匹配的问题

    这篇文章主要介绍了解决pytorch 损失函数中输入输出不匹配的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析

    Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析

    这篇文章主要给大家介绍了关于Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-05-05
  • Pytest Fixture参数讲解及使用

    Pytest Fixture参数讲解及使用

    这篇文章主要介绍了Pytest之Fixture参数详解及使用,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01

最新评论