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

  • 相关阅读:
    我的游戏学习日志54———类型游戏策划(1)—动作游戏(1)
    我的游戏学习日志53——游戏游戏策划—小结
    IE8下Extjs报缺少':'符号错误
    Extjs 兼容IE8常见问题及解决方法
    程序员如何提升自己
    extjs layout 最灵活的页面布局样式
    如何运用军事战略建立更好的习惯
    Ext之页面多次请求问题 (下拉框发送无关请求)
    计算机网络通信那些事
    Java基础
  • 原文地址:https://www.cnblogs.com/Zioyi/p/14002159.html
Copyright © 2020-2023  润新知