工作效率:通过pycharm的模板代码减少重复工作
摘要
在常见的业务开发场景下,经常要开发大量重复的代码,这里代码耗时但又必要,就像我们写分析报告一样,每次都要为固定的格式耗费精力。我们可以更加日常开发经验总结出一些常用的模板代码来帮助我们实现一秒五行
的代码开发效率。
业务开发场景
我使用Flask
框架来开发后端api服务,以下是开发两个api需要实现的大致代码,需要在urls.py
文件中注册路由连接和处理请求类,在views.py
文件中实现处理请求类的具体执行逻辑。
# urls.py::
bp = Blueprint("api", __name__)
bp.add_url_rule(
"/courses/<string:course_id>",
view_func=v.CourseDetailView.as_view("course_detail"),
methods=["GET"],
)
bp.add_url_rule(
"/courses/<string:course_id>/instruction",
view_func=v.CourseInstructionView.as_view("course_instruction"),
methods=["GET"],
)
# views.py::
class CourseDetailView(MethodView):
@swag_from_yml_file("users/course_detail_get.yml")
@permission_required()
def get(self, course_id):
...
return Response()
class CourseInstrauView(MethodView):
@swag_from_yml_file("users/course_instruction_get.yml")
@permission_required()
def get(self, course_id):
...
return Response()
可以看到像注册路由的代码可以抽象为一个模板
bp.add_url_rule(
"$路由链接$",
view_func=$处理方法类$.as_view("$别名$"),
methods=["$支持请求类型$", ...]
)
处理方法实现的代码可以抽象为两个模板(因为一个处理方法类里可以处理多个请求,如:GET、POST)
class $处理方法类名$View(MethodView):
@swag_from_yml_file("$api文档路径$")
@permission_required()
def $请求方法$(self, $参数$):
$业务逻辑$
return Response()
IDE开发工具pycharm的Live Template
- 使用快捷键
command
+,
(mac) 或Ctrl
+Alt
+s
(Windows)
- 进入设置页面。在
Editor
栏搜索Live Templates
- 新建
Template Group
,名字叫Python Flask
- 在新的Group下新建模板
regisbp
这个模板是用来注册路由代码的
"""
Abbreviation: regisbp
Description: register blueprint
Template text:
"""
bp.add_url_rule(
"$url$", view_func=$ViewName$View.as_view("$viewIdentify$"),methods=[$Methods$]
)
需要注意,记得点这里
- 在新的Group下新建模板
viewClass
这个模板用来声明处理方法类
"""
Abbreviation: viewClass
Description: create ViewClass
Template text:
"""
class $ViewName$View(MethodView):
- 在新的Group下新建模板
viewMethod
"""
Abbreviation: viewMethod
Description: view method
Template text:
"""
@swag_from_yml_file("$doc_path$")
@permission_required()
def $method$(self, $args$):
$code$
return encoder.json_response($rv$)
完成,之后开发需要时,只要输入regisbp
、viewClass
、viewMethod
后回车
即可。