Flask Web Development - Flask外掛程式機制&Flask-Script

來源:互聯網
上載者:User

標籤:http   io   os   使用   ar   java   strong   sp   art   

本節取自part I chapter 2的後半部分,跳過了關於request與response具體互動設計細節內容。主要通過Flask-Script外掛程式讓讀者對於外掛程式系統有個簡單認識。

Flask注重拓展性,社區裡已經有很多外掛程式可供選擇,當然也可以使用python標準庫或者其他的各種庫。

Flask-Script

Flask-Script這個外掛程式,是用來增加Flask應用的命令列參數的,它本身內建了一些通用的選項,也支援自訂的命令。這功能可能類似於python標準庫中的argparse。

之前提到過,Flask內建一個開發環境用的server,這個server支援一些啟動參數配置,但是這些配置只能通過在啟動時作為app.run()參數傳入。這非常不方便,比較理想的配置方式是通過指令碼命令行參數的方式傳入。下面通過Flask-Script來實現這個功能。

安裝很簡單:

$ pip install flask-script

下面給之前寫的hello.py指令碼增加一些命令列參數,省略了一些代碼:

from flask.ext.script import Managermanager = Manager(app)# ...if __name__ == ‘__main__‘:     manager.run()

Flask的外掛程式在安裝好後,都可以通過flask.ext這個命名空間引入。Flask-Script可以提供一個Manager類,通過flask.ext.script可以引入。

通過向構造器傳入應用執行個體來初始化外掛程式裡的執行個體,比如上面的Manager,這是Flask外掛程式的常用初始化方式。從構造器得到的執行個體,就可以視情況不同正常使用了。現在應用通過manager.run()啟動,命令列參數在此處解析。

註:目前代碼是GitHub上的2c版本,切換tag可以查看。

運行hello.py,可以發現現在應用多了一些基本的命令列參數:

$ python hello.pyusage: hello.py [-h] {shell,runserver}...positional arguments:    {shell,runserver}     shell              Runs a Python shell inside Flask application context.     runserver          Runs the Flask development server i.e. app.run()optional arguments:     -h, --help         show this help message and exit

shell命令可以在應用上下文中開啟一個Python的shell,你可以在裡面處理一些維護任務或測試。

runserver命令可以啟動server,預設開始debug模式,還有很多參數可選:

$ python hello.py runserver --helpusage: hello.py runserver [-h] [-t HOST] [-p PORT] [--threaded]                 [--processes PROCESSES] [--passthrough-errors] [-d]                 [-r]Runs the Flask development server i.e. app.run()optional arguments:-h, --help       show this help message and exit-t HOST, --host HOST-p PORT, --port PORT--threaded--processes      PROCESSES--passthrough-errors-d, --no-debug-r, --no-reload

--host參數可以指定server監聽的串連,預設監聽的localhost(一般是127.0.0.1)。嘗試修改:

$ python hello.py runserver --host 0.0.0.0* Running on http://0.0.0.0:5000/* Restarting with reloader

現在處於同網路中的任何電腦都可以通過訪問http://a.b.c.d:5000來訪問這個server,a.b.c.d是運行server的電腦在這個網路中的IP。

註:下次是模板機制的說明,重點!Flask返回的response全靠這個機制。

Flask Web Development - Flask外掛程式機制&Flask-Script

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.