摘要

在常见的业务开发场景下,经常要开发大量重复的代码,这里代码耗时但又必要,就像我们写分析报告一样,每次都要为固定的格式耗费精力。我们可以更加日常开发经验总结出一些常用的模板代码来帮助我们实现一秒五行的代码开发效率。

业务开发场景

我使用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的模板代码减少重复工作的更多相关文章

  1. 在pycharm中自定义模板代码,快速输出固定代码块

    pycharm中有时会经常输出固定一段代码,为避免每次重复输入,可以自定义一段模板代码,请看以下图教程: 1.  点击 file   里面的   setting 2. 在搜索框输入live,就会显示出 ...

  2. 程序员如何巧用Excel提高工作效率 第二篇

    之前写了一篇博客程序员如何巧用Excel提高工作效率,讲解了程序员在日常工作中如何利用Excel来提高工作效率,没想到收到很好的反馈,点赞量,评论量以及阅读量一度飙升为我的博客中Top 1,看来大家平 ...

  3. Linux 下三种提高工作效率的文件处理技巧

    Linux 下三种提高工作效率的文件处理技巧 在 Linux 下工作,打交道最多的就是文件了,毕竟 Linux 下工作一切皆文件嘛.Linux 也为大家提供了多种用于处理文件的命令,合理使用这些命令可 ...

  4. javascript性能优化之避免重复工作

    javascript最重要也最根本的性能优化标准之一是避免工作,避免工作又包括两点,第一,不做不必要的工作,第二,不做重复的已经完成的工作.第一部分可以通过代码重构完成,第二部分不做重复的工作有时候难 ...

  5. paip.提高工作效率--数据绑定到table原则和过程Angular js jquery实现

    paip.提高工作效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #----- ...

  6. [翻译] 使用 Visual Studio 2019 来提高每个开发人员的工作效率

    [翻译] 使用 Visual Studio 2019 来提高每个开发人员的工作效率 原文: Making every developer more productive with Visual Stu ...

  7. 10大必备的Intellij插件,大幅提高你的工作效率

    转自: https://blog.csdn.net/qq1404510094/article/details/80379375 1. .ignore 生成各种ignore文件,一键创建git igno ...

  8. 动手使用ABAP Channel开发一些小工具,提升日常工作效率

    今天的故事要从ABAP小游戏说起. 中国的ABAP从业者们手头或多或少都搜集了一些ABAP小游戏,比如下面这些. 消灭星星: 扫雷: 来自我的朋友刘梦,公众号"SAP干货铺"里的俄 ...

  9. web开发快速提高工作效率的一些资源

    前端学习资源实在是又多又广,在这样的一个知识的海洋里,我们像一块海绵一样吸收,想要快速提高效率,平时的总结不可缺少,以下总结了一些,排版自我感觉良好,推送出来,后续持续跟新中...... 开发工具 H ...

随机推荐

  1. C++:第一个c++程序

    // C++ 环境搭建: https://www.bilibili.com/video/BV1nt4y1r7Ez?t=535 // 学习资料:https://www.runoob.com/cplusp ...

  2. 微信小程序云开发-数据库-用户删除数据

    一.在商品详情页添加[删除单条数据]按钮 进入goodDetail.wxml页面,添加[删除单条数据]按钮,绑定点击事件removeGood()  二.进入goodDetail.js文件,定义remo ...

  3. mybatis介绍以及配置

    一.概念 1.作用:简化dao层,是框架的一部分,常叫SSM,或SSI 2.历史:之前的版本叫ibatis,三版之后叫mybatis 3.什么是orm?object,relational,mappin ...

  4. vulnhub-DC:2靶机渗透记录

    准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-2,311/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...

  5. 最长公共子序列问题(LCS)——Python实现

      # 最长公共子序列问题 # 作用:求两个序列的最长公共子序列 # 输入:两个字符串数组:A和B # 输出:最长公共子序列的长度和序列 def LCS(A,B): print('输入字符串数组A', ...

  6. 🔥 LeetCode 热题 HOT 100(81-90)

    337. 打家劫舍 III 思路:后序遍历 + 动态规划 推荐题解:树形 dp 入门问题(理解「无后效性」和「后序遍历」) /** * Definition for a binary tree nod ...

  7. MegEngine TensorCore 卷积算子实现原理

    作者:章晓 | 旷视 MegEngine 架构师 一.前言 2020 年 5 月 Nvidia 发布了新一代的 GPU 架构安培(Ampere).其中和深度学习关系最密切的莫过于性能强劲的第三代的 T ...

  8. ;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk

    ;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk ;~ 此脚本用于测试执行一行或多行AHK脚本源代码的效果;~ 此脚本最后修改于2019年9月22日20时03分;~ 把此 ...

  9. getRawX、getRawY与getX、getY、getScrollX、getScrollY,getTop,getLeft区别

    这篇文章写的不错,Mark一下 http://blog.csdn.net/sinat_29912455/article/details/51073537

  10. 小白自学vue的第一天,加油!

    一.插值的操作 1.Mustache语法 也就是双大括号(翻译过来就是胡须的意思) 2.v-once指令 加了v-once数据不会随着数据的改变而改变,只会渲染一次 3.v-html指令 可以解析HT ...