Flask script 內的Shell 類 使用

2022-03-04 17:16:59 字數 1284 閱讀 1484

每次自動shell會話都要匯入資料庫例項和模型,很煩人。

為了避免一直重複匯入,

我們可以做些配置讓flask-script的shell命令自動匯入特定的物件。

若想把物件新增到匯入列表中,我們要為shell命令註冊乙個make_context**函式

例子:hello.py: 為shell命令新增乙個上下文

from flask_script import

shell

defmake_ shell context():

manager.add_command('shell', shell(make_context=make_shell_context))

typeerror: : 'dict' ob

ject is not callable

是因為多寫了括號,讓定義的 make_ shell context 函式直接執行了

manager.add_command('shell', shell(make_context=make_shell_context()))
繼續:

make_shell _context() 函式註冊了程式、資料庫例項以及模型,因此這些物件能直接匯入shell:

$ python hello.py shell

''>

>>>db

'sqlite:////home/flask/flasky/data.sqlite

'>

>>>user

''>

shell 是個好東西,在平時需要手動做一些應用的操作的時候,flask 的 shell 簡直是神助攻,尤其是當需要查詢乙個 model 的資料的時候更爽了。

flask-script 的 shell 其實就是乙個載入了 flask 應用上下文的互動式環境,通過 shell, 我們可以像啟動應用一樣操作動態資料。

簡單說:方便自己除錯!

在啟動的 shell 中新增預設的變數,例如上面新增了 db、user 這些,也就是說在啟動 shell 之後就可以直接像訪問預設函式/變數一樣直接用,不用自己匯入物件。

比如可以直接查詢資料庫:

db.user.query.all()

如果不加這個make_context引數的話,還得麻煩的自己匯入:

db.user.query.all()

簡單說:不用自己匯入物件(如資料庫模型等)!

flask與flask script的使用

一 安裝 pip install flask script二 簡單的使用 manage.py from flask script import manager from flask import flask manager.command def hello print hello def inde...

sh與bash的區別

在shell指令碼的開頭往往有一句話來定義使用哪種sh直譯器來解釋指令碼。目前研發送測的shell指令碼中主要有以下兩種方式 1 bin sh 2 bin bash 在這裡求教同福客棧的各位大俠們乙個問題 以上兩種方式有什麼區別?對於指令碼的實際執行會產生什麼不同的影響嗎?指令碼test.sh內容 ...

sh裡的變數 0 1

0就是該bash檔名 顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。所有位置引數的內容 就是呼叫呼叫本bash shell的引數。基本上與上面相同。只不過是 返回的是乙個字串,字串中存在多外空格。返回多個字串。還有 返回所有位置引數的個數。執行當前sh檔案的pid touch var...