文章目录
- 在 File and Code Templates 界面: Files 标签页:设置各类文件模板 Includes 标签页:创建可复用的模板片段 Code 标签页:设置代码片段模板
- #!/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()
- 变量 描述 示例 ${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
- # ${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}” # 以下为自动生成的代码
- # File Header.py “”” test includes “””
- # Python Script #parse(“File Header.py”) import os import sys def main(): pass if __name__ == ‘__main__’: main()
- #if (${NAME} == “models”) from django.db import models #else import os import sys #end
- #set($ModelName = ${NAME.substring(0,1).toUpperCase()} + ${NAME.substring(1)}) class ${ModelName}(models.Model): pass
- #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)
- #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
- #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’) }), )
- # 创建 Django 模型字段模板 # Abbreviation: df # Description: Django field # Template text: $FIELD_NAME$ = models.$FIELD_TYPE$($PARAMS$)
- 打开 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("")
- 简洁性:只包含必要元素 一致性:团队统一模板风格 实用性:包含常用导入和结构 可扩展性:使用 Includes 片段
- # 文件头 #parse(“File Header.py”) # 导入区 import os import sys # 主逻辑 def main(): pass # 执行入口 if __name__ == ‘__main__’: main()
- #if (${PACKAGE_NAME} == “models”) from django.db import models #elseif (${PACKAGE_NAME} == “views”) from django.views import View #end
目录
- 一、完整配置流程
- 1. 打开模板设置
- 2. 配置全局模板
- 3. 创建 Python 文件模板
- 4. 添加自定义变量
- 5. 创建 Django 模型模板
- 二、高级模板配置
- 1. 创建模板片段(Includes)
- 2. 使用模板片段
- 3. 条件模板
- 4. 自定义变量
- 三、模板示例集
- 1. Django View 模板
- 2. Django Form 模板
- 3. Django ModelAdmin 模板
- 四、自动生成工具
- 1. 使用 Live Templates
- 2. 配置 Live Templates
- 五、团队共享模板
- 1. 导出模板
- 2. 导入模板
- 3. 版本控制
- 六、模板变量全集
- 七、最佳实践建议
- 1. 模板设计原则
- 2. 推荐模板结构
- 3. 动态模板技巧
- 八、常见问题解决
- 1. 模板不生效
- 2. 变量不解析
- 3. 多级目录模板
- 总结
实现创建文件时自动添加自定义模板


在 File and Code Templates 界面:
- Files 标签页:设置各类文件模板
- Includes 标签页:创建可复用的模板片段
- Code 标签页:设置代码片段模板
#!/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()

| 变量 | 描述 | 示例 |
|---|---|---|
| ${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 |
# ${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}"
# 以下为自动生成的代码




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

# Python Script
#parse("File Header.py")
import os
import sys
def main():
pass
if __name__ == '__main__':
main()

#if (${NAME} == "models")
from django.db import models
#else
import os
import sys
#end
#set($ModelName = ${NAME.substring(0,1).toUpperCase()} + ${NAME.substring(1)})
class ${ModelName}(models.Model):
pass
#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)
#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
#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')
}),
)
# 创建 Django 模型字段模板
# Abbreviation: df
# Description: Django field
# Template text:
$FIELD_NAME$ = models.$FIELD_TYPE$($PARAMS$)
打开 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("")


# 模板文件位置
~/.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} | 美元符号 | $ |
- 简洁性:只包含必要元素
- 一致性:团队统一模板风格
- 实用性:包含常用导入和结构
- 可扩展性:使用 Includes 片段
# 文件头
#parse("File Header.py")
# 导入区
import os
import sys
# 主逻辑
def main():
pass
# 执行入口
if __name__ == '__main__':
main()
#if (${PACKAGE_NAME} == "models")
from django.db import models
#elseif (${PACKAGE_NAME} == "views")
from django.views import View
#end
- 检查文件类型匹配
- 确认模板名称正确
- 重启 PyCharm
- 使用正确的大写格式
${VAR}
- 检查变量名拼写
- 确保变量在作用域内
${VAR}
# 在特定目录创建模板
# 右键目录 > New > Edit File Templates
配置 PyCharm 文件模板的完整流程:
- 打开设置:
File > Settings > Editor > File and Code Templates - 选择文件类型:在 Files 标签页选择 Python Script
- 编写模板:使用变量和逻辑控制
- 添加 Includes:创建可复用片段
- 保存应用:点击 OK 保存设置
高级技巧:
- 使用
#parse指令组合模板 - 通过
#if实现条件模板 - 用
#set定义自定义变量 - 配置 Live Templates 快速生成代码片段
通过合理配置模板,您可以:
- 统一代码风格
- 减少重复工作
- 提高开发效率
- 确保最佳实践
以上就是PyCharm文件模板配置的完整指南的详细内容,更多关于PyCharm文件模板配置的资料请关注风君子博客其它相关文章!
您可能感兴趣的文章:
- windows下pycharm安装、创建文件、配置默认模板
- pycharm中创建sql文件及模板的过程
- 新建文件时Pycharm中自动设置头部模板信息的方法
- pycharm设置python文件模板信息过程图解
- 对Pycharm创建py文件时自定义头部模板的方法详解