阅读 74

工作效率:通过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

  1. 使用快捷键command+,(mac) 或Ctrl+Alt+s(Windows)

image 2. 进入设置页面。在Editor栏搜索Live Templates image 3. 新建Template Group,名字叫Python Flask image 4. 在新的Group下新建模板regisbp 这个模板是用来注册路由代码的

""" Abbreviation: regisbp Description: register blueprint Template text: """ bp.add_url_rule(     "$url$", view_func=$ViewName$View.as_view("$viewIdentify$"),methods=[$Methods$] ) 复制代码

image 需要注意,记得点这里

image

  1. 在新的Group下新建模板viewClass

这个模板用来声明处理方法类

""" Abbreviation: viewClass Description: create ViewClass Template text: """ class $ViewName$View(MethodView): 复制代码

  1. 在新的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$) 复制代码

完成,之后开发需要时,只要输入regisbpviewClassviewMethod回车即可。 image

image.png


作者:Zioyi
链接:https://juejin.cn/post/7029190860046762014


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐