前言
Flask 是一個(gè)簡(jiǎn)單流行的python web框架, 筆者有一定的python基礎(chǔ), 所以打算學(xué)習(xí)以下Python web, 而不是Java Web, 這樣可以快速入門(mén)實(shí)踐. 學(xué)習(xí)Flask之前, 最好掌握基礎(chǔ)的Python, HTLM, CSS, JavaScript用法, 這些都是Web開(kāi)發(fā)的基礎(chǔ).
本例子介紹一個(gè)最簡(jiǎn)單的python Flask最小系統(tǒng), 以熟悉Flask的基礎(chǔ)概念和用法
運(yùn)行環(huán)境
- Ubuntu 20.04
- Python3.8-minconda
- flask-2.0.1
- vscode/pycharm
環(huán)境配置
pip install Flask
pip install python-dotenv # optional
Flask App demo 實(shí)現(xiàn)
工程實(shí)現(xiàn)
功能: 創(chuàng)建一個(gè)Flask web服務(wù)器, 用戶(hù)在瀏覽器上輸入網(wǎng)站, 顯示"Hello,Flask"
創(chuàng)建目錄 HelloFlask, 添加一個(gè)新的文件, 取名app.py
app.py
from flask import Flask
# Flask() 第一個(gè)參數(shù):python模塊或者包的名稱(chēng), 目的是幫助Flask在相應(yīng)的文件夾中尋找資源
app = Flask(import_name=__name__)
# 注冊(cè)路由, '/' --- 和index函數(shù)映射
# index()成為 視圖函數(shù)
# app.route( URL_RULE) 的參數(shù)為URL規(guī)則, 是一個(gè)字符串, 必須以"/'開(kāi)始
@app.route('/')
def index():
return '<h1>Hello, Flask !</h1>'
運(yùn)行
在HelloFlask目錄,打開(kāi)終端, 輸入 flask run : 輸出LOG:
* 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)
瀏覽器: 打開(kāi)瀏覽器,輸入: http://127.0.0.1:5000/

App 流程分析
Step1: app = Flask(import_name=__name__) 創(chuàng)建了一個(gè)app對(duì)象, 輸入?yún)?shù)為 __name__ , 目的是讓Flask在指定的路徑下尋找資源。 在python中, __name__ 代碼當(dāng)前被執(zhí)行的py文件的名稱(chēng)。 目前演示的demo比較簡(jiǎn)單, 目錄下沒(méi)有別的資源, 一般比較復(fù)雜的app, 會(huì)加載HTML模板, CSS文件等。
Step2: 定義一個(gè)視圖函數(shù)(View Function), 并且綁定到指定的URL規(guī)則上。 綁定URL規(guī)則,F(xiàn)lask中使用python 裝飾器實(shí)現(xiàn). 一個(gè)視圖函數(shù)可以綁定多個(gè)URL. 視圖函數(shù)的返回: 字符串 或者 HTML模板, 這里簡(jiǎn)單起見(jiàn),直接返回HTML字符串.
Step3: 啟動(dòng)App, 啟動(dòng)app的命令: flask run, flask 是一個(gè)可執(zhí)行程序,位于:/miniconda3/bin/flask, 執(zhí)行flask run命令之后, flask會(huì)在當(dāng)前目錄查找FLASK_APP, 也就是app.py, 之后啟動(dòng)一個(gè)web server, 默認(rèn)端口為: 5000
至此, 簡(jiǎn)單的Flask demo的流程介紹完了,下面介紹一些app啟動(dòng)的配置。
其他配置
修改端口和host IP
flask run --port=8080 --host=0.0.0.0設(shè)置運(yùn)行環(huán)境模式
export FLASK_DEBUG=1
export FLASK_ENV=development 開(kāi)發(fā)模式
設(shè)置開(kāi)發(fā)模式的目的: 修改Flask python代碼只需ctrl+s 保存,瀏覽器會(huì)自動(dòng)刷新。