免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Flask內(nèi)置命令行工具

應(yīng)用發(fā)現(xiàn)

flask命令在Flask庫(kù)安裝后可使用,使用前需要正確配置FLASK_APP環(huán)境變量以告知用戶(hù)程序所在位置。不同平臺(tái)設(shè)置方式有所不同。

Unix Bash (Linux, Mac, etc.):

$ export FLASK_APP=hello$ flask run

Windows CMD:

> set FLASK_APP=hello> flask run

Windows PowerShell:

> $env:FLASK_APP="hello"> flask run

FLASK_APP環(huán)境變量分三部分:一個(gè)設(shè)置當(dāng)前工作目錄的可選路徑,一個(gè)python文件或帶"."的導(dǎo)入路徑,一個(gè)可選的應(yīng)用實(shí)例或工廠(chǎng)函數(shù)變量名。如果是工廠(chǎng)函數(shù),可以后跟括號(hào)傳入要接收的參數(shù)。

FLASK_APP=src/hello
設(shè)置src為當(dāng)前工作目錄,并導(dǎo)入hello

FLASK_APP=hello.web
導(dǎo)入hello.web

FLASK_APP=hello:app2
使用hello中的app2實(shí)例

FLASK_APP=hello:create_app('dev')
使用hello中的工廠(chǎng)函數(shù)create_app并傳入?yún)?shù)dev

如果未設(shè)置FLASK_APP,flask命令會(huì)查找wsgi.pyapp.py文件并探測(cè)應(yīng)用實(shí)例或工廠(chǎng)函數(shù)。flask命令在給定的導(dǎo)入內(nèi)尋找一個(gè)名為app或者application的應(yīng)用實(shí)例,如果找不到會(huì)繼續(xù)尋找任意應(yīng)用實(shí)例。如果找不到任何實(shí)例,會(huì)接著尋找名為create_app或者make_app的工廠(chǎng)函數(shù),使用該函數(shù)返回的實(shí)例。

flask run

運(yùn)行開(kāi)發(fā)服務(wù)器。不消說(shuō),不要在生產(chǎn)環(huán)境使用

flask shell

開(kāi)啟一個(gè)交互式的python shell,用來(lái)訪(fǎng)問(wèn)或處理應(yīng)用數(shù)據(jù)。該指令默認(rèn)激活應(yīng)用上下文,并導(dǎo)入應(yīng)用實(shí)例。

只有應(yīng)用實(shí)例是默認(rèn)導(dǎo)入的,如果需要導(dǎo)入其他對(duì)象,使用shell_context_processor裝飾函數(shù),返回一個(gè)字典對(duì)象,鍵值對(duì)表示額外導(dǎo)入的對(duì)象。

from exts import db, models@app.shell_context_processordef make_shell_context():    return dict(models=models, db=db)

flask db

執(zhí)行數(shù)據(jù)庫(kù)遷移相關(guān)操作。flask db指令不能直接使用,需要獲取Migrate實(shí)例。

from flask_migrate import Migratemigrate = Migrate(app, db)

環(huán)境

通過(guò)FLASK_ENV變量設(shè)置Flask應(yīng)用的運(yùn)行環(huán)境??蛇x值包括production(默認(rèn))和development。
如果設(shè)置為development,flask命令將激活debug模式,執(zhí)行flask run會(huì)啟用交互式調(diào)試器和代碼自動(dòng)重載。

DEBUG模式

設(shè)置FLASK_ENV為development時(shí),會(huì)自動(dòng)激活debug模式。也可以通過(guò)FLASK_DEBUG變量單獨(dú)控制,1表示啟用,0表示禁用

通過(guò)dotenv設(shè)置環(huán)境變量

通過(guò)virtualenv設(shè)置環(huán)境變量

自定義命令

flask命令基于Click庫(kù)實(shí)現(xiàn)。
下列代碼演示添加帶有name參數(shù)的print-user命令:

import clickfrom flask import Flaskapp = Flask(__name__)@app.cli.command()@click.argument("name")def print_user(name):    print("this is", name)

運(yùn)行方式:flask print-user root。注意這里的指令是print-user,使用print_user會(huì)提示沒(méi)有這個(gè)指令,除非顯示地在app.cli.command()中傳入"print_user"。

下列代碼演示了和上面相同的功能,但將打印用戶(hù)的命令添加到了user命令組。命令組可用于管理多個(gè)相關(guān)的命令:

import clickfrom flask import Flaskfrom flask.cli import AppGroupapp = Flask(__name__)user_cli = AppGroup("user")@user_cli.command("print")@click.argument("name")def print_user(name):    print("this is", name)app.cli.add_command(user_cli)

運(yùn)行方式:flask user print root

要測(cè)試自定義命令,參考Testing CLI Commands

應(yīng)用上下文

使用Flask應(yīng)用的.cli.command()裝飾器添加的命令在執(zhí)行時(shí)自動(dòng)推入應(yīng)用上下文。

如果使用Click的command()裝飾器添加命令,執(zhí)行時(shí)不會(huì)自動(dòng)推入應(yīng)用上下文,要想達(dá)到同樣的效果,增加with_appcontext裝飾器:

import clickfrom flask import Flask, current_appfrom flask.cli import with_appcontextapp = Flask(__name__)@click.command()@with_appcontextdef do_work():    print("do work")    print(current_app)app.cli.add_command(do_work)

如果命令不需要在應(yīng)用上下文中執(zhí)行,可以顯示地禁用:

@app.cli.command(with_appcontext=False)def do_work():    pass

插件

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

自定義腳本

略(針對(duì)使用工廠(chǎng)函數(shù)生成應(yīng)用實(shí)例的情況,在setup.py中配置entry_points->console_scripts的值)

PyCharm 集成

查看原文: Flask內(nèi)置命令行工具—CLI

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Flask使用SQLite數(shù)據(jù)庫(kù)
震撼!用Python開(kāi)發(fā)網(wǎng)站如此簡(jiǎn)單
Redis系列~命令(四)
數(shù)據(jù)庫(kù)
Command 模式在 SAP Spartacus 中的具體應(yīng)用一例
GDB筆記(二):條件斷點(diǎn)、命令列表、監(jiān)視點(diǎn) | Lesca技術(shù)宅
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服