工作效率:通过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)
2. 进入设置页面。在Editor
栏搜索Live Templates
3. 新建Template Group
,名字叫Python Flask
4. 在新的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
后回车
即可。
作者:Zioyi
链接:https://juejin.cn/post/7029190860046762014