Flask系列教程(26)——Flask-Script
Flask-Script:
如果想深入學習Flask,可以觀看這套免費Flask教學視訊:零基礎:Flask入門到專案實戰
Flask-Script
的作用是可以通過命令列的形式來操作Flask
。例如通過命令跑一個開發版本的伺服器、設定資料庫,定時任務等。要使用Flask-Script
,可以通過pip install flask-script
安裝最新版本。首先看一個最簡單的例子:
# manage.py
from flask_script import Manager
from your_app import app
manager = Manager(app)
@manager.command
def hello():
print 'hello'
if __name__ == '__main__':
manager.run()
我們把指令碼命令程式碼放在一個叫做manage.py
檔案中,然後在終端執行python manage.py hello
命令,就可以看到輸出hello
了。
定義命令的三種方法:
使用
@command
裝飾器:這種方法之前已經介紹過。就不過多講解了。-
使用類繼承自
Command
類:from flask_script import Command,Manager from your_app import app manager = Manager(app) class Hello(Command): "prints hello world" def run(self): print "hello world" manager.add_command('hello',Hello())
使用類的方式,有三點需要注意:
* 必須繼承自`Command`基類。 * 必須實現`run`方法。 * 必須通過`add_command`方法新增命令。
-
使用
option
裝飾器:如果想要在使用命令的時候還傳遞引數進去,那麼使用@option
裝飾器更加的方便:@manager.option('-n','--name',dest='name') def hello(name): print 'hello ',name
這樣,呼叫
hello
命令:python manage.py -n xt
或者
python manage.py --name xt
就可以輸出:
hello xt
新增引數到命令中:
- option裝飾器:以上三種建立命令的方式都可以新增引數,
@option
裝飾器,已經介紹過了。看以下示例介紹展示新增多個引數的方式:
@manager.option('-n', '--name', dest='name', default='joe')
@manager.option('-u', '--url', dest='url', default=None)
def hello(name, url):
if url is None:
print "hello", name
else:
print "hello", name, "from", url
- command裝飾器:command裝飾器也可以新增引數,但是不能那麼的靈活,如下示例:
@manager.command
def hello(name="Fred")
print "hello", name
- 類繼承:類繼承也可以新增引數,看以下示例:
from flask_Flask import Comman,Manager,Option
class Hello(Command):
option_list = (
Option('--name','-n',dest='name'),
)
def run(self,name):
print "hello %s" % name
如果要在指定引數的時候,動態的做一些事情,可以使用get_options
方法,示例如下:
class Hello(Command):
def __init__(self,default_name='Joe'):
self.default_name = default_name
def get_options(self):
return [
Option('-n','--name',dest='name',default=self.default_name),
]
def run(self,name):
print 'hello',name
如果想深入學習Flask,可以觀看這套免費Flask教學視訊:零基礎:Flask入門到專案實戰
</article>
版權宣告: https://blog.csdn.net/huangyong1314/article/details/80555176
相關文章
- 使用新版flask-script時報錯No module named flask._compat和cannot import name ‘_request_ctx_stack‘ from ‘flask‘FlaskImport
- day93:flask:Cookie&Session&請求鉤子&捕獲錯誤&上下文&Flask-ScriptFlaskCookieSession
- Python教程系列之Flask框架的學習PythonFlask框架
- Flask 外掛系列 - Flask-SQLAlchemyFlaskSQL
- Flask 外掛系列 - Flask-MailFlaskAI
- Flask 外掛系列 -- Flask-MongoEngineFlaskGo
- flask入門教程Flask
- 《Flask 入門教程》 第 2 章:Hello, Flask!Flask
- Flask 系列 - 基於 Flask 提供 RESTful Web 服務FlaskRESTWeb
- Python Flask Web教程001:Flask簡介PythonFlaskWeb
- Python Flask教程(一)PythonFlask
- [譯]Flask教程–請求物件Flask物件
- Flask教程第十四章:AjaxFlask
- Flask教程第十一章:美化Flask
- 教程 Redis+ flask+vue 線上聊天RedisFlaskVue
- [譯]Flask教程–重定向與錯誤Flask
- 《Flask 入門教程》第 3 章:模板Flask
- 寫一本Flask入門教程Flask
- Python Flask基礎教程(入門)PythonFlask
- Flask 教程 第八章:粉絲Flask
- Flask教程第一章:Hello,World!Flask
- Flask教程第九章:分頁Flask
- Flask教程第七章:錯誤處理Flask
- Flask教程第十章:郵件支援Flask
- 《Flask 入門教程》第 6 章:模板優化Flask優化
- react系列教程React
- Hudson教程系列
- [譯]Flask教程–將表單資料傳送到模板Flask
- Python程式和Flask框架中使用SQLAlchemy的教程PythonFlask框架SQL
- MongoTemplate 教程系列(三)Go
- MongoTemplate 教程系列(一)Go
- MongoTemplate 教程系列(二)Go
- 微服務系列教程微服務
- WCF系列教程地址
- Qt Creator系列教程QT
- EJB系列教程 (轉)
- Bootstrap教程(26)–輪播的實現boot
- flask筆記:部署flaskFlask筆記