flask-script模塊的具體使用
1 作用
通過 flask-script 可以以命令的形式,執(zhí)行 flask 語句。
提供向 Flask 插入外部腳本的功能,如 運行一個開發(fā)服務器、運行 shell、執(zhí)行數(shù)據(jù)庫腳本。
2 安裝
pip install flask-script
3 所有要運行的命令都放在 manager.py 中
from flask import Flask from flask_script import Manager, Command from loguru import logger # [ 生成一個 Flask 實例 ] app = Flask(__name__) # [ Manager 構造方法,只接受一個參數(shù), # 就是 Flask 實例,Manager 負責追蹤整個 命令 的處理過程 ] manager = Manager(app)
4 三種方式 創(chuàng)建命令
4.1 方式一 創(chuàng)建 Command子類
# 定義要執(zhí)行的命令類型 Hello 繼承 Command class Hello(Command): # 重寫 Command 類的 run() 方法 def run(self): ''' 要執(zhí)行的命令 ''' logger.info('sub class of Command') if __name__ == '__main__': ''' 將 hello 命令加入到 manager , 第一個參數(shù)為自己起的的命令簡稱, 第二個參數(shù)為 Command 子類 Hello 的實例 ''' manager.add_command('hello', Hello()) manager.run()
在 cmd 執(zhí)行 python manager.py hello [ hello 就是自己的 命令的簡稱 ]
這樣就會打印出 sub class of Command
4.2 方式二 使用裝飾器 @manager.command
''' @manager.command 其實 manager 就是上面初始化出來的 Manager 類的實例, 如果 Manager 類的實例名稱為 manager_1 ,則裝飾器也要改成 @manager_1.command ''' ''' 使用 裝飾器 @manager.command 后,命令的簡稱就是 函數(shù)的名字 hello_command, 在 __main__ 中 就不需要 在 通過 manager.add_command() 將 命令簡稱加入到 command 實例中了 ''' @manager.command def hello_command(): logger.info('@manager.command') if __name__ == '__main__': ''' 在 __main__ 中 就不需要 在 通過 manager.add_command() 將 命令簡稱加入到 command 實例中了 ''' manager.run()
在 cmd 執(zhí)行 python manager.py hello_command [ hello_command 就是自己的 命令的簡稱 ]
這樣就會打印出 @manager.command
4.3 方式三 使用裝飾器 @manager.option
''' -u 為命令參數(shù)的 簡寫,--username 為命令參數(shù)的 全稱 (類似于 Linux 命令的參數(shù),參數(shù)簡寫 為一個 -,參數(shù)全稱為 -- ), 無論是參數(shù)的 簡寫、還是 全稱 都必須以 - 開頭,但是 全稱也可以只以 一個 - 開頭, 但建議以 兩個 - 開頭,因為更符合編碼規(guī)范,dest 的值必須與 hello_option 函數(shù)(也就是命令)的 入?yún)⒚? 稱 完全相同,因為 dest 就是表示這個參數(shù)值,傳遞給 hello_option 命令函數(shù)的那個入?yún)⒌模籨efault 表示 參數(shù)的默認值,也就是如果執(zhí)行 python manager.py hello_option 執(zhí)行命令時,不帶參數(shù),就用參數(shù)的默認 值 ''' @manager.option('-u', '--username', dest='username', default='zhangsan') @manager.option('-p', '--password', dest='password', default='123456') def hello_option(username, password): logger.info('@manage.option') logger.info(f'username = {username}, password = {password}') if __name__ == '__main__': ''' 在 __main__ 中 就不需要 在 通過 manager.add_command() 將 命令簡稱加入到 command 實例中了 '''
到此這篇關于flask-script模塊的具體使用的文章就介紹到這了,更多相關flask-script模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python 將md5轉(zhuǎn)為16字節(jié)的方法
今天小編就為大家分享一篇python 將md5轉(zhuǎn)為16字節(jié)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python 兩個列表的差集、并集和交集實現(xiàn)代碼
這篇文章主要介紹了Python 兩個列表的差集、并集和交集實現(xiàn)代碼,需要的朋友可以參考下2016-09-09Empty test suite.(PyCharm程序運行錯誤的解決方法)
今天小編就為大家分享一篇Empty test suite.(PyCharm程序運行錯誤的解決方法),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11python使用Berkeley DB數(shù)據(jù)庫實例
這篇文章主要介紹了python使用Berkeley DB數(shù)據(jù)庫的方法,以實例形式講述了完整的操作過程,并總結(jié)了具體的操作步驟,非常具有實用性,需要的朋友可以參考下2014-09-09Python?隊列Queue和PriorityQueue解析
這篇文章主要介紹了Python?隊列Queue和PriorityQueue,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09python高階函數(shù)functools模塊的具體使用
本文主要介紹了python高階函數(shù)functools模塊的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03