人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python flask-script 模塊詳解

發(fā)布日期:2021-12-15 12:09 | 文章來源:源碼之家

1 作用

通過 flask-script 可以以命令的形式,執(zhí)行 flask 語句。

提供向 Flask 插入外部腳本的功能,如 運(yùn)行一個開發(fā)服務(wù)器、運(yùn)行 shell、執(zhí)行數(shù)據(jù)庫腳本。

2 安裝

pip install flask-script

3 所有要運(yùn)行的命令都放在 manager.py 中

from flask import Flask
from flask_script import Manager, Command
from loguru import logger
# [ 生成一個 Flask 實(shí)例 ]
app = Flask(__name__)  
# [ Manager 構(gòu)造方法,只接受一個參數(shù),
# 就是 Flask 實(shí)例,Manager 負(fù)責(zé)追蹤整個 命令 的處理過程 ]
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 的實(shí)例
 '''
 manager.add_command('hello', Hello())  
 manager.run()

在 cmd 執(zhí)行 python manager.py hello [ hello 就是自己的 命令的簡稱 ]

這樣就會打印出 sub class of Command

4.2 方式二 使用裝飾器 @manager.command

'''
@manager.command 其實(shí) manager 就是上面初始化出來的 Manager 類的實(shí)例,
如果 Manager 類的實(shí)例名稱為 manager_1 ,則裝飾器也要改成 @manager_1.command
'''
'''
使用 裝飾器 @manager.command 后,命令的簡稱就是 函數(shù)的名字 hello_command,
在 __main__ 中 就不需要 在 通過 manager.add_command() 將 命令簡稱加入到 command 實(shí)例中了
'''
@manager.command
def hello_command(): 
 logger.info('@manager.command')
if __name__ == '__main__':
 '''
 在 __main__ 中 就不需要 在 通過 manager.add_command() 將 命令簡稱加入到 command 實(shí)例中了
 '''
 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ù)的 簡寫、還是 全稱 都必須以 - 開頭,但是 全稱也可以只以 一個 - 開頭,
但建議以 兩個 - 開頭,因?yàn)楦暇幋a規(guī)范,dest 的值必須與 hello_option 函數(shù)(也就是命令)的 入?yún)⒚?稱 完全相同,因?yàn)?dest 就是表示這個參數(shù)值,傳遞給 hello_option 命令函數(shù)的那個入?yún)⒌?;default 表示
參數(shù)的默認(rèn)值,也就是如果執(zhí)行 python manager.py hello_option 執(zhí)行命令時,不帶參數(shù),就用參數(shù)的默認(rèn)
值
'''
@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 實(shí)例中了
 '''
 manager.run() 

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時開通

自選配置、實(shí)時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部