摘要:如果設置為,命令將激活模式,執行會啟用交互式調試器和代碼自動重載。也可以通過變量多帶帶控制,表示啟用,表示禁用通過設置環境變量略通過設置環境變量略自定義命令命令基于庫實現。
應用發現
flask命令在Flask庫安裝后可使用,使用前需要正確配置FLASK_APP環境變量以告知用戶程序所在位置。不同平臺設置方式有所不同。
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環境變量分三部分:一個設置當前工作目錄的可選路徑,一個python文件或帶"."的導入路徑,一個可選的應用實例或工廠函數變量名。如果是工廠函數,可以后跟括號傳入要接收的參數。
FLASK_APP=src/hello
設置src為當前工作目錄,并導入hello
FLASK_APP=hello.web
導入hello.web
FLASK_APP=hello:app2
使用hello中的app2實例
FLASK_APP=hello:create_app("dev")
使用hello中的工廠函數create_app并傳入參數dev
如果未設置FLASK_APP,flask命令會查找wsgi.py或app.py文件并探測應用實例或工廠函數。flask命令在給定的導入內尋找一個名為app或者application的應用實例,如果找不到會繼續尋找任意應用實例。如果找不到任何實例,會接著尋找名為create_app或者make_app的工廠函數,使用該函數返回的實例。
flask run運行開發服務器。不消說,不要在生產環境使用
flask shell開啟一個交互式的python shell,用來訪問或處理應用數據。該指令默認激活應用上下文,并導入應用實例。
只有應用實例是默認導入的,如果需要導入其他對象,使用shell_context_processor裝飾函數,返回一個字典對象,鍵值對表示額外導入的對象。
from exts import db, models @app.shell_context_processor def make_shell_context(): return dict(models=models, db=db)flask db
執行數據庫遷移相關操作。flask db指令不能直接使用,需要獲取Migrate實例。
from flask_migrate import Migrate migrate = Migrate(app, db)環境
通過FLASK_ENV變量設置Flask應用的運行環境。可選值包括production(默認)和development。
如果設置為development,flask命令將激活debug模式,執行flask run會啟用交互式調試器和代碼自動重載。
設置FLASK_ENV為development時,會自動激活debug模式。也可以通過FLASK_DEBUG變量多帶帶控制,1表示啟用,0表示禁用
通過dotenv設置環境變量略
通過virtualenv設置環境變量略
自定義命令flask命令基于Click庫實現。
下列代碼演示添加帶有name參數的print-user命令:
import click from flask import Flask app = Flask(__name__) @app.cli.command() @click.argument("name") def print_user(name): print("this is", name)
運行方式:flask print-user root。注意這里的指令是print-user,使用print_user會提示沒有這個指令,除非顯示地在app.cli.command()中傳入"print_user"。
下列代碼演示了和上面相同的功能,但將打印用戶的命令添加到了user命令組。命令組可用于管理多個相關的命令:
import click from flask import Flask from flask.cli import AppGroup app = 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)
運行方式:flask user print root
要測試自定義命令,參考Testing CLI Commands
應用上下文使用Flask應用的.cli.command()裝飾器添加的命令在執行時自動推入應用上下文。
如果使用Click的command()裝飾器添加命令,執行時不會自動推入應用上下文,要想達到同樣的效果,增加with_appcontext裝飾器:
import click from flask import Flask, current_app from flask.cli import with_appcontext app = Flask(__name__) @click.command() @with_appcontext def do_work(): print("do work") print(current_app) app.cli.add_command(do_work)
如果命令不需要在應用上下文中執行,可以顯示地禁用:
@app.cli.command(with_appcontext=False) def do_work(): pass插件
略(在setup.py中配置entry_points->flask.commands的值)
自定義腳本略(針對使用工廠函數生成應用實例的情況,在setup.py中配置entry_points->console_scripts的值)
PyCharm 集成略
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42842.html
摘要:接收用戶請求并分析請求的。執行函數并生成響應,返回給瀏覽器。這個過程我們稱為注冊路由,路由負責管理和函數之間的映射,而這個函數則被稱為視圖函數。文件是一個名為的文本文件,它存儲了項目中提交時的忽略文件規則清單。 flask簡述 Flask 是一個基于 Python 開發并且依賴 jinja2 模板和 Werkzeug WSGI 服務的一個微型框架,對于 Werkzeug 本質是 Soc...
摘要:上一篇文章手把手教你如何用構建技術文章聚合平臺一介紹了如何使用搭建的運行環境,并且將與集成,對掘金進行技術文章的抓取,最后可以查看抓取結果。本篇文章將繼續講解如何利用編寫一個精簡的聚合平臺,將抓取好的文章內容展示出來。 上一篇文章《手把手教你如何用Crawlab構建技術文章聚合平臺(一)》介紹了如何使用搭建Crawlab的運行環境,并且將Puppeteer與Crawlab集成,對掘金、...
摘要:顯示工具欄默認并不顯示工具欄,在大多數工具欄都放了最常用的操作,你可以通過主菜單顯示菜單欄來顯示工具欄。工具欄顯示出來后你還可以通過右鍵定制上面的按鈕,我會把一些跟相關的操作放到上面,比如,,默認它只加了和。 PyCharm是我強烈推薦的Python IDE,如果你有EDU的郵箱可以直接申請專業版授權,或者就使用社區版,功能上并沒有太多縮減,日常開發也完全夠用。 如果是首次安裝PyCh...
摘要:本篇文章主要介紹騰訊團隊從到在工程化的思考和實踐。的全稱是前端工作流,致力于提升研發效率和規范的工程化解決方案。最后騰訊團隊的工程化解決方案已經開源主頁如果對您的團隊或者項目有幫助,請給個支持一下哈 showImg(https://segmentfault.com/img/remote/1460000013362603?w=1200&h=400); 本篇文章主要介紹騰訊IVWEB團隊從...
摘要:從存儲的字符串表示中檢索原始對象的過程稱為。這稱為命名空間。如果需要八進制或十六進制表示,請使用內置函數或。和有什么區別返回對象,而返回列表,并使用相同的內存,無論范圍大小是多少。它提供了靈活性,并允許開發人員為他們的項目使用正確的工具。 ...
閱讀 1998·2021-09-30 09:53
閱讀 1841·2021-09-24 09:48
閱讀 1755·2019-08-30 14:01
閱讀 2170·2019-08-29 18:35
閱讀 1249·2019-08-26 18:27
閱讀 2979·2019-08-26 12:12
閱讀 942·2019-08-23 17:16
閱讀 931·2019-08-23 15:31