Flask內建命令列工具 CLI

2021-09-05 07:16:45 字數 1835 閱讀 3358

unix bash (linux, mac, etc.):

$ flask run

windows cmd:

> flask run

windows powershell:

> flask run

設定src為當前工作目錄,並匯入hello

匯入hello.web

執行開發伺服器。不消說,不要在生產環境使用

開啟乙個互動式的python shell,用來訪問或處理應用資料。該指令預設啟用應用上下文,並匯入應用例項。

只有應用例項是預設匯入的,如果需要匯入其他物件,使用shell_context_processor裝飾函式,返回乙個字典物件,鍵值對表示額外匯入的物件。

from exts import db, models

def make_shell_context():

return dict(models=models, db=db)

執行資料庫遷移相關操作。flask db指令不能直接使用,需要獲取migrate例項。

from flask_migrate import migrate
通過flask_env變數設定flask應用的執行環境。可選值包括production(預設)和development

如果設定為development,flask命令將啟用debug模式,執行flask run會啟用互動式偵錯程式和**自動過載。

設定flask_env為development時,會自動啟用debug模式。也可以通過flask_debug變數單獨控制,1表示啟用,0表示禁用略略

flask命令基於click庫實現。

下列**演示新增帶有name引數的print-user命令:

import click

from flask import flask

@click.argument("name")

def print_user(name):

print("this is", name)

import click

from flask import flask

@user_cli.command("print")

@click.argument("name")

def print_user(name):

print("this is", name)

執行方式:flask user print root

要測試自定義命令,參考testing cli commands

使用flask應用的.cli.command()裝飾器新增的命令在執行時自動推入應用上下文。

import click

@click.command()

def do_work():

print("do work")

如果命令不需要在應用上下文中執行,可以顯示地禁用:

def do_work():

pass

略(在setup.py中配置entry_points->flask.commands的值)

略(針對使用工廠函式生成應用例項的情況,在setup.py中配置entry_points->console_scripts的值)

Flask內建命令列工具 CLI

unix bash linux,mac,etc.flask run windows cmd flask run windows powershell flask run 設定src為當前工作目錄,並匯入hello 匯入hello.web 執行開發伺服器。不消說,不要在生產環境使用 開啟乙個互動式的p...

Flask內建命令列工具 CLI

unix bash linux,mac,etc.flask run windows cmd flask run windows powershell flask run 設定src為當前工作目錄,並匯入hello 匯入hello.web 執行開發伺服器。不消說,不要在生產環境使用 開啟乙個互動式的p...

go語言cli命令列互動

預先準備 go get github.com spf13 cobra 執行rootcmd命令,在main被呼叫 func execute var cfgfile string func init func initconfig else 在home資料夾中搜尋以 yaml 為名稱的config co...