Flask 第三方組件之 script

Flask Script擴展提供向Flask插入外部腳本的功能,包括運行一個開發用的服務器,一個定制的Python shell,設置數據庫的腳本,cronjobs,及其他運行在web應用之外的命令行任務;使得腳本和系統分開;

Flask Script和Flask本身的工作方式類似,只需定義和添加從命令行中被Manager實例調用的命令;

放官方:http://flask-script.readthedocs.io/en/latest/

1 創建并運行命令

首先,創建一個Python模板運行命令腳本,可起名為manager.py;
在該文件中,必須有一個Manager實例,Manager類追蹤所有在命令行中調用的命令和處理過程的調用運行情況;
調用manager.run()啟動Manager實例接收命令行中的命令;

#-*-coding:utf8-*-  
from flask_script import Manager  
from debug import app  # Manager只有一個參數 Flask實例,也可以是一個函數或其他的返回Flask實例;
manager = Manager(app)  if __name__ == '__main__':  manager.run()

其次,創建并加入命令;

有三種方法創建命令,即創建Command子類、使用@command修飾符、使用@option修飾符;

1、創建Command子類

# 創建Hello命令,并將Hello命令加入Manager實例;
from flask_script import Manager  ,Server
from flask_script import Command  
from debug import app  manager = Manager(app)  class Hello(Command):  'hello world'  # 必須定義一個run方法;def run(self):  print 'hello world'  # 自定義命令一:
manager.add_command('hello', Hello())      # 命令是hello# 自定義命令二:
manager.add_command("runserver", Server()) # 命令是runserver
if __name__ == '__main__':  manager.run()

執行如下命令:

python manager.py hello
> hello world

2、使用Command實例的@command修飾符

#-*-coding:utf8-*-  
from flask_script import Manager  
from debug import app  manager = Manager(app)  @manager.command  
def hello():  'hello world'  print 'hello world'  if __name__ == '__main__':  manager.run()  

該方法創建命令的運行方式和Command類創建的運行方式相同;

3、使用Command實例的@option修飾符

復雜情況下,建議使用@option;可以有多個@option選項參數;

from flask_script import Manager  
from debug import app  manager = Manager(app)  @manager.option('-n', '--name', dest='name', help='Your name', default='world')  # 命令既可以用-n,也可以用--name,dest="name"用戶輸入的命令的名字作為參數傳給了函數中的name
@manager.option('-u', '--url', dest='url', default='www.csdn.com')  # 命令既可以用-u,也可以用--url,dest="url"用戶輸入的命令的url作為參數傳給了函數中的urldef hello(name, url):
'hello world or hello '  print 'hello', name  print url  if __name__ == '__main__':  manager.run()  

運行方式如下:

python manager.py hello
>hello world
>www.csdn.compython manager.py hello -n sissiy -u www.sissiy.com
> hello sissiy
>www.sissiy.compython manager.py hello --name sissiy --url www.sissiy.com
> hello sissiy
>www.sissiy.com

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454492.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454492.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454492.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CentOS四種方法自建yum倉庫

將ISO光盤鏡像作為yum本地倉庫(適用于不能聯外網的環境): 1、 禁用所有可用的yum倉庫,為方便演示,直接全部刪除: # cd /etc/yum.repos.d # ls # rm -rf * 2、 創建光盤掛載點,掛載光盤&#x…

python substr_python數據分析-數據對象(一)

Python基本數據類型一般分為:數字、字符串、列表、元組、字典、集合這六種基本數據類型。不可變(3 個):Number(數字)、String(字符串)、Tuple(元組)&#xff…

VLC框架分析

功能部份: VLC媒體播放器的核心是libvlc ,它提供了界面,應用處理功能,如播放列表管理,音頻和視頻解碼和輸出,線程系統。所有libvlc源文件設在的/src目錄及其子目錄: # config/ :從命令行和配置…

html表格里的超鏈接點不了,Excel如何添加和取消超鏈接 Excel超鏈接打不開是怎么回事...

很多用戶在制作excel表格的時候都會添加一些超鏈接,在制作完成后發布到網頁,閱讀者可以通過超鏈接打開指引的網頁或者文件,超鏈接對制作excel表格的用戶有非常大的幫助,雖然添加超鏈接的步驟非常簡單,不過還是有些exce…

yum 安裝apache php mysql

安裝: yum install -y httpd php 查看版本:、 rpm -qa httpd php httpd-2.2.15-54.el6.centos.x86_64 php-5.3.3-48.el6_8.x86_64 修改apache配置文件: vim /etc/httpd/conf/httpd.conf 在#ServerName www.example.com:80行下添加一行 Server…

Python 散點圖線性擬合_機器學習之利用Python進行簡單線性回歸分析

前言:在利用機器學習方法進行數據分析時經常要了解變量的相關性,有時還需要對變量進行回歸分析。本文首先對人工智能/機器學習/深度學習、相關分析/因果分析/回歸分析等易混淆的概念進行區分,最后結合案例介紹如何利用Python進行簡單線性回歸…

Flask 第三方組件之 Migrate

flask-migrate是flask的一個擴展模塊,主要是擴展數據庫表結構的.類似于Django的python manage.py migrate 官方文檔: http://flask-migrate.readthedocs.io/en/latest/ 安裝 pip install flask-migrate 使用舉例 from flask import Flask from flask_sqlalchemy import SQLA…

html section 布局,section標簽的用法

標簽的用法由于昨晚發了一篇文章http://www.zcool.com.cn/article/ZMzA3MzI.html,有一個網友評論問 的用法。所以現在舉例來說明一下:html5引入了標簽,用于描述文檔的結構,它同標簽的意思一樣。但是在特定環境中,兩者又…

清北學堂Day4

(1)第一題 財富(treasure) Time Limit:1000ms Memory Limit:128MB 題目描述 LYK有n個小伙伴。每個小伙伴有一個身高hi。 這個游戲是這樣的,LYK生活的環境是以身高為美的環境,因此在這里的每個人都羨慕比自己身高高的人&#xff…

Falsk session 源碼解析

Falsk框架session請求流程 from flask import Flask # 1. 實例化Flask對象 app Flask(__name__) # 2. 設置路由 app.route(/index) def index(): return "index" if __name__ __main__: # 3. 啟動socket服務端 app.run() # 4. 用戶請求到來 ap…

vlc內部運行機制以及架構分析

VLC架構剖析1. VideoLan簡介1.1 videolan組成Videolan有以下兩部分組成:VLC:一個最主要的部分,它可以播放各種類型的媒體文件和流vlc架構剖析 1. VideoLan簡介 1.1 videolan組成 Videolan有以下兩部分組成: VLC:一個最主要的部分,它可以播放各種類型的媒…

visio中公式太小_visio繪圖中的數據計算

在繪流程圖時,我們有時候會想直接在流程圖上做計算,比如化工設計時精餾塔計算理論塔板數。在VISIO中,實現這個功能還是比較容易,舉一個最簡單的例子。如下圖所示,等號后面的數字可以根據前面的數字變化。實現過程如下&…

Django syncdb mysql error on localhost - (1045, Access denied for user 'ODBC'@'

環境:WINDOWS系統 將數據庫配置 DATABASES { default: { ENGINE: django.db.backends.mysql, HOST: localhost, PORT: 3306, NAME: yunwei, USERNAME: root, PASSWORD: mysql, } } 改為 DATABASES { default: { ENGINE: django.db.backends.mysql, HOST: localhos…

銀行招計算機專業算什么崗,銀行計算機專業崗位全方位分析

黑龍江銀行招聘信息陸續發布,中公教育專家為各位考生提供:銀行計算機專業崗位全方位分析!供大家參考,預祝大家取得好成績,更多黑龍江人民銀行招聘相關資料請關注黑龍江銀行招聘網。金融銀行部門一直是一個朝陽產業&…

【47.92%】【hdu 5763】Another Meaning

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1440 Accepted Submission(s): 690 Problem DescriptionAs is known to all, in many cases, a word has two meanings. Such as “hehe”, which not only mea…

root用戶登錄mysql后新建用戶提示1045錯誤

執行以下命令查看root權限 show grants for rootlocalhost; 如果沒有顯示with grant option,說明是root沒有擁有新建授權用戶的權限(為什么會這樣呢,因為我把userroot and hostlocalhost給刪掉了,然后重新授權all privileges給新建root用戶&a…

Flask werkzeug 源碼解析

Flask werkzeug流程大概:執行run_simple ,實際執行為先用make_server 創建一個 BaseServer 實例,然后執行 實例的serve_forever 方法, serve_forever 調用 run_simple 傳入的第三個參數,執行(self, environ, start_response) &am…

AVS 幀內預測模式的匯編優化

王瑞*基金項目:本課題得到國家自然科學基金資助項目基金(項目編號:60772101)的資助。作者簡介:王瑞(1986—), 男, 山東萊蕪人, 碩士, 主要從事視頻壓縮方面的研究. E-mai…

ltsc系統激活_WIN10_X64企業版LTSC 電腦公司裝機版 202008

文件: WIN10_X64_LTSC_ZJ202008.esd大小: 7431429353 字節(6.92G)MD5: A3A3B15ED47216E177C924D2E07E0799SHA1: 3A647265E0C8234225C633407093BAA07253FB34CRC32: 32E791E9(注意,下載文件有一定幾率損壞,如文件值不對請重新下載!)360安全云盤…

大學計算機應用基礎考試題庫,大學計算機應用基礎考試題庫

綜合模擬(四)一、選擇題。1、完整的計算機硬件系統一般包括外部設備和 C 。A、運算器的控制器 B、存儲器 C、主機 D、中央處理器2、計算機能夠自動工作,主要是因為采用了 D 。A、二進制數制 B、高速電子元件 C、存儲程序控制 D、程序設計語言3、下面哪能一組是系統軟…