PyCharm文件模板配置的完整指南
實(shí)現(xiàn)創(chuàng)建文件時(shí)自動(dòng)添加自定義模板
一、完整配置流程
1. 打開(kāi)模板設(shè)置


2. 配置全局模板
在 File and Code Templates 界面:
- Files 標(biāo)簽頁(yè):設(shè)置各類文件模板
- Includes 標(biāo)簽頁(yè):創(chuàng)建可復(fù)用的模板片段
- Code 標(biāo)簽頁(yè):設(shè)置代碼片段模板
3. 創(chuàng)建 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} | 當(dāng)前日期 | 2023-07-26 |
| ${TIME} | 當(dāng)前時(shí)間 | 14:30 |
| ${USER} | 系統(tǒng)用戶名 | john |
| ${NAME} | 文件名(不含擴(kuò)展名) | my_script |
| ${PRODUCT_NAME} | PyCharm 產(chǎn)品名 | PyCharm |
| ${YEAR} | 當(dāng)前年份 | 2023 |
| ${MONTH} | 當(dāng)前月份 | 07 |
| ${DAY} | 當(dāng)前日期 | 26 |
| ${HOUR} | 當(dāng)前小時(shí) | 14 |
| ${MINUTE} | 當(dāng)前分鐘 | 30 |
5. 創(chuàng)建 Django 模型模板
# ${NAME}.py
from django.db import models
class ${ModelName}(models.Model):
"""${Description}"""
# 字段定義
created_at = models.DateTimeField(auto_now_add=True, verbose_name='創(chuàng)建時(shí)間')
updated_at = models.DateTimeField(auto_now=True, verbose_name='更新時(shí)間')
class Meta:
verbose_name = '${VerboseName}'
verbose_name_plural = '${VerboseNamePlural}'
ordering = ['-created_at']
def __str__(self):
return f"{self.id}"
# 以下為自動(dòng)生成的代碼




二、高級(jí)模板配置
1. 創(chuàng)建模板片段(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):
# 自定義驗(yàn)證
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')
}),
)
四、自動(dòng)生成工具
1. 使用 Live Templates
# 創(chuàng)建 Django 模型字段模板 # Abbreviation: df # Description: Django field # Template text: $FIELD_NAME$ = models.$FIELD_TYPE$($PARAMS$)
2. 配置 Live Templates
打開(kāi) Settings > Editor > Live Templates
創(chuàng)建 Python 組
添加新模板:
- Abbreviation:
df - Description:
Django field - Template text:
${FIELD_NAME} = models.${FIELD_TYPE}(${PARAMS})
定義變量:
- FIELD_NAME:
suggestVariableName() - FIELD_TYPE:
complete() - PARAMS:
defaultValue("")
五、團(tuán)隊(duì)共享模板
1. 導(dǎo)出模板

2. 導(dǎo)入模板

3. 版本控制
# 模板文件位置 ~/.config/JetBrains/PyCharm2023.1/templates
六、模板變量全集
| 變量 | 描述 | 示例 |
|---|---|---|
| ${NAME} | 文件名(不含擴(kuò)展名) | my_view |
| ${PACKAGE_NAME} | 包名 | myapp.views |
| ${PROJECT_NAME} | 項(xiàng)目名 | MyDjangoProject |
| ${USER} | 當(dāng)前用戶 | john |
| ${DATE} | 當(dāng)前日期 | 2023-07-26 |
| ${TIME} | 當(dāng)前時(shí)間 | 14:30 |
| ${YEAR} | 當(dāng)前年份 | 2023 |
| ${MONTH} | 當(dāng)前月份 | 07 |
| ${DAY} | 當(dāng)前日期 | 26 |
| ${HOUR} | 當(dāng)前小時(shí) | 14 |
| ${MINUTE} | 當(dāng)前分鐘 | 30 |
| ${SECOND} | 當(dāng)前秒數(shù) | 45 |
| ${PRODUCT_NAME} | IDE 名稱 | PyCharm |
| ${MONTH_NAME_FULL} | 月份全名 | July |
| ${MONTH_NAME_SHORT} | 月份縮寫(xiě) | Jul |
| ${DS} | 美元符號(hào) | $ |
七、最佳實(shí)踐建議
1. 模板設(shè)計(jì)原則
- 簡(jiǎn)潔性:只包含必要元素
- 一致性:團(tuán)隊(duì)統(tǒng)一模板風(fēng)格
- 實(shí)用性:包含常用導(dǎo)入和結(jié)構(gòu)
- 可擴(kuò)展性:使用 Includes 片段
2. 推薦模板結(jié)構(gòu)
# 文件頭
#parse("File Header.py")
# 導(dǎo)入?yún)^(qū)
import os
import sys
# 主邏輯
def main():
pass
# 執(zhí)行入口
if __name__ == '__main__':
main()
3. 動(dòng)態(tài)模板技巧
#if (${PACKAGE_NAME} == "models")
from django.db import models
#elseif (${PACKAGE_NAME} == "views")
from django.views import View
#end
八、常見(jiàn)問(wèn)題解決
1. 模板不生效
- 檢查文件類型匹配
- 確認(rèn)模板名稱正確
- 重啟 PyCharm
2. 變量不解析
- 使用正確的大寫(xiě)格式
${VAR} - 檢查變量名拼寫(xiě)
- 確保變量在作用域內(nèi)
3. 多級(jí)目錄模板
# 在特定目錄創(chuàng)建模板 # 右鍵目錄 > New > Edit File Templates
總結(jié)
配置 PyCharm 文件模板的完整流程:
- 打開(kāi)設(shè)置:
File > Settings > Editor > File and Code Templates - 選擇文件類型:在 Files 標(biāo)簽頁(yè)選擇 Python Script
- 編寫(xiě)模板:使用變量和邏輯控制
- 添加 Includes:創(chuàng)建可復(fù)用片段
- 保存應(yīng)用:點(diǎn)擊 OK 保存設(shè)置
高級(jí)技巧:
- 使用
#parse指令組合模板 - 通過(guò)
#if實(shí)現(xiàn)條件模板 - 用
#set定義自定義變量 - 配置 Live Templates 快速生成代碼片段
通過(guò)合理配置模板,您可以:
- 統(tǒng)一代碼風(fēng)格
- 減少重復(fù)工作
- 提高開(kāi)發(fā)效率
- 確保最佳實(shí)踐
以上就是PyCharm文件模板配置的完整指南的詳細(xì)內(nèi)容,更多關(guān)于PyCharm文件模板配置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python性能分析工具pyinstrument提高代碼效率
今天分享一個(gè)超級(jí)實(shí)用的 Python 性能分析工具 pyinstrument ,可以快速找到代碼運(yùn)行最慢的部分,幫助提高代碼的性能。支持 Python 3.7+ 且能夠分析異步代碼,僅需一條命令即可顯示具體代碼的耗時(shí)。經(jīng)常寫(xiě) Python 的小伙伴一定要用一下2021-09-09
drf-router和authenticate認(rèn)證源碼分析
在 Rest Framework 中提供了兩個(gè) router , 可以幫助我們快速的實(shí)現(xiàn)路由的自動(dòng)生成,本文通過(guò)實(shí)例代碼給大家介紹drf-router和authenticate認(rèn)證源碼分析,感興趣的朋友跟隨小編一起看看吧2021-07-07
C語(yǔ)言實(shí)現(xiàn)二叉搜索樹(shù)的完整總結(jié)
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)二叉搜索樹(shù)的完整總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python機(jī)器學(xué)習(xí)三大件之一numpy
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)三大件之一numpy,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助喲.需要的朋友可以參考下2021-05-05
淺談Python里面None True False之間的區(qū)別
這篇文章主要介紹了淺談Python里面None True False之間的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Scrapy爬蟲(chóng)框架集成selenium及全面詳細(xì)講解
這篇文章主要為大家介紹了Scrapy集成selenium,以及scarpy爬蟲(chóng)框架全面講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
Python中使用Inotify監(jiān)控文件實(shí)例
這篇文章主要介紹了Python中使用Inotify監(jiān)控文件實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02

