天天看點

工作效率:通過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)
  2. 進入設定頁面。在

    Editor

    欄搜尋

    Live Templates

    工作效率:通過pycharm的模闆代碼減少重複工作
  3. 建立

    Template Group

    ,名字叫

    Python Flask

    工作效率:通過pycharm的模闆代碼減少重複工作
  4. 在新的Group下建立模闆

    regisbp

    這個模闆是用來注冊路由代碼的
"""
Abbreviation: regisbp
Description: register blueprint
Template text:
"""
bp.add_url_rule(
    "$url$", view_func=$ViewName$View.as_view("$viewIdentify$"),methods=[$Methods$]
)
           
工作效率:通過pycharm的模闆代碼減少重複工作

需要注意,記得點這裡

工作效率:通過pycharm的模闆代碼減少重複工作
  1. viewClass

    這個模闆用來聲明處理方法類
"""
Abbreviation: viewClass
Description: create ViewClass
Template text:
"""
class $ViewName$View(MethodView):


           
  1. 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的模闆代碼減少重複工作