1. 程式人生 > 實用技巧 >使用Flask構建一個Web應用

使用Flask構建一個Web應用

Flask是一個使用Python編寫的輕量級Web應用框架。

一、安裝Flask

以管理員身份,開啟命令提示符視窗,輸入下面命令

py -3 -m pip install flask 

  

這個命令會連線到PyPI網站下載和安裝Flask模組,以及Flask依賴的幾個模組:Werkzeug、MarkupSafe、Jinja2、itsdangerous、click。
安裝完成後,在命令提示符視窗最後部分可以看到:

Installing collected packages: Werkzeug, MarkupSafe, Jinja2, itsdangerous, click, flask
Successfully installed Jinja2-2.10.1 MarkupSafe-1.1.1 Werkzeug-0.15.4 click-7.0 flask-1.0.3 itsdangerous-1.1.0 

  

二、建立一個hello world的最小Web應用

1、建立一個hello.py,內容如下

#匯入flask模組的Flask類
from flask import Flask

#__name__為當前活動模組的名稱
app = Flask(__name__) 

#設定路由
@app.route(‘/‘) 
def hello() -> str:
     return ‘Hello World!‘

"""run()有3個可選引數
host 主機,預設為127.0.0.1
port 埠號,預設5000
debug 是否開啟除錯模式,預設為False,如設為True則修改程式碼會自動重啟
"""
app.run()  

  

在命令提示符視窗中定位到hello.py所在目錄,並執行命令py -3 hello.py

D:\projects\python>py -3 hello.py
 * Serving Flask app "hello" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

表示已經啟動了一個Web應用,除錯模式未開啟,地址為http://127.0.0.1:5000,按CTRL+C可以退出Web應用。

3、在瀏覽器輸入http://127.0.0.1:5000
可看到瀏覽器顯示Hello World!
同時在剛才命令提示符視窗可看到
127.0.0.1 - - [23/Jun/2019 09:31:55] "GET / HTTP/1.1" 200 -

資源網站大全 https://55wd.com 我的007辦公資源網站 https://www.wode007.com

三、路由配置

在URL和函式之間建立聯絡的操作被稱之為路由。
路由支援動態名稱,規則如下:

1.<id> :預設接受的型別是str
2.<string:id> :指定id的型別為str,不能包含路徑分隔符/
3.<int:id> :指定的id型別是整數
4.<float:id> : 指定id的型別為浮點數(四捨五入,且不能接收整數型別)
5.<path:path1> : 指定接收的path為任何非空字串,可包含路徑分隔符/ 

使用例子:

from flask import Flask

app = Flask(__name__) 


@app.route(‘/getStr/<id>‘) 
def getStr(id) -> str:
     """匹配str型別的id值,如/getStr/1 """
     return ‘id: %s‘ %id

@app.route(‘/getInt/<int:id>‘) 
def getInt(id) -> str:
     """匹配int型別的id值,如/getInt/1 """
     return ‘id: %d‘ %id

@app.route(‘/getFloat/<float:id>‘) 
def getFloat(id) -> str:
     """匹配float型別的id值,如/getFloat/1.053 """
     return ‘id: %.2f‘ %id

@app.route(‘/getPath/<path:path>‘) 
def getPath(path) -> str:
     """匹配非空字元,一般匹配url路徑值,如/getPath/test/1 """
     return ‘path: %s‘ %path

app.run(debug = True)