工作效率:通过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) 或Win+,(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$]
)
5.在新的Group下新建模板viewClass
这个模板用来声明处理方法类
"""
Abbreviation: viewClass
Description: create ViewClass
Template text:
"""
class $ViewName$View(MethodView):
6.在新的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后回车即可。
工作效率:通过pycharm的模板代码减少重复工作的更多相关文章
- 在pycharm中自定义模板代码,快速输出固定代码块
pycharm中有时会经常输出固定一段代码,为避免每次重复输入,可以自定义一段模板代码,请看以下图教程: 1. 点击 file 里面的 setting 2. 在搜索框输入live,就会显示出 ...
- 程序员如何巧用Excel提高工作效率 第二篇
之前写了一篇博客程序员如何巧用Excel提高工作效率,讲解了程序员在日常工作中如何利用Excel来提高工作效率,没想到收到很好的反馈,点赞量,评论量以及阅读量一度飙升为我的博客中Top 1,看来大家平 ...
- Linux 下三种提高工作效率的文件处理技巧
Linux 下三种提高工作效率的文件处理技巧 在 Linux 下工作,打交道最多的就是文件了,毕竟 Linux 下工作一切皆文件嘛.Linux 也为大家提供了多种用于处理文件的命令,合理使用这些命令可 ...
- javascript性能优化之避免重复工作
javascript最重要也最根本的性能优化标准之一是避免工作,避免工作又包括两点,第一,不做不必要的工作,第二,不做重复的已经完成的工作.第一部分可以通过代码重构完成,第二部分不做重复的工作有时候难 ...
- paip.提高工作效率--数据绑定到table原则和过程Angular js jquery实现
paip.提高工作效率--数据绑定到table原理和流程Angular js jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #----- ...
- [翻译] 使用 Visual Studio 2019 来提高每个开发人员的工作效率
[翻译] 使用 Visual Studio 2019 来提高每个开发人员的工作效率 原文: Making every developer more productive with Visual Stu ...
- 10大必备的Intellij插件,大幅提高你的工作效率
转自: https://blog.csdn.net/qq1404510094/article/details/80379375 1. .ignore 生成各种ignore文件,一键创建git igno ...
- 动手使用ABAP Channel开发一些小工具,提升日常工作效率
今天的故事要从ABAP小游戏说起. 中国的ABAP从业者们手头或多或少都搜集了一些ABAP小游戏,比如下面这些. 消灭星星: 扫雷: 来自我的朋友刘梦,公众号"SAP干货铺"里的俄 ...
- web开发快速提高工作效率的一些资源
前端学习资源实在是又多又广,在这样的一个知识的海洋里,我们像一块海绵一样吸收,想要快速提高效率,平时的总结不可缺少,以下总结了一些,排版自我感觉良好,推送出来,后续持续跟新中...... 开发工具 H ...
随机推荐
- Linux 安装exclipse
1,在官网下载:https://www.eclipse.org/downloads/packages/ 2,前提:安装好jdk 3,使用命令解压:tar -zxvf eclipse_xxxxxx.ta ...
- 分别在Update和FixedUpdate使用GetKeyDown
测试目的 探究分别在Update和FixedUpdate使用GetKeyDown执行次数,会不同的 测试开始 在Update测试 我们先在Update测试,很正常是一帧重置一下状态,以防止点击一下执行 ...
- sql-1-准备
一.准备工作 1.mysql安装和配环境 不要以exe文件安装,要下载压缩包安装 下载地址:https://dev.mysql.com/downloads/mysql 在系统path中加上bin目录 ...
- mybatis-6-动态sql
动态sql简介&OGNL了解 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处 理器相似. MyBatis 采用功能强大的基于 OGNL 的表达式来简化操作. if cho ...
- 深入学习Netty(5)——Netty是如何解决TCP粘包/拆包问题的?
前言 学习Netty避免不了要去了解TCP粘包/拆包问题,熟悉各个编解码器是如何解决TCP粘包/拆包问题的,同时需要知道TCP粘包/拆包问题是怎么产生的. 在此博文前,可以先学习了解前几篇博文: 深入 ...
- VM安装kali操作系统
工具:VMware Workstation 15 Pro(15.5.6 build-16341506),kali-linux-2020.2-installer-amd64.iso vm15下载链接:h ...
- 第四十九篇 -- 添加联系人信息Addcontact
往通讯录里添加联系人 首先,在清单文件里添加读写权限 <uses-permission android:name="android.permission.READ_CONTACTS&q ...
- 谈谈 C++ STL 中的迭代器
C++中的迭代器和指针 在前面的内容中我们简单讲过,STL主要是由三部分组成 容器(container),包括vector,list,set,map等 泛型算法(generic algorithm), ...
- Resnet网络详细结构(针对Cifar10)
Resnet网络详细结构(针对Cifar10) 结构 具体结构(Pytorch) conv1 (conv1): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, ...
- NOIP&CSP PJ 难度刷题记录
前言 本来不想写前言的(>人<:) 这只是 mjl 给我们布置的作业,并不是我自己在刷题! 不保证所有代码的正确性,它们仅仅是通过了所有数据点而已. 1.模拟板块 整体难度:红~黄(模拟不 ...