《Flask Web 開發實戰》 筆記 - 基礎篇
Flask 僅保留了Web框架的核心,其他功能都交給了擴充套件實現。
基礎篇
1.1 基礎準備
1.1.1 搭建開發環境
1.安裝pip和pipenvPipenv
是包管理工具pip install pipenv
直接用容易報錯,可以使用國內映象。
2.建立虛擬環境
使用虛擬環境能夠擁有一個獨立的python直譯器環境
pipenv install
能夠建立一個隔離環境
C:\Users\Usrname\AppData\Local\pypa\virtualenv 是該專案的虛擬環境資料夾pipenv shell
或pipenv run
命令能夠自動從目錄中載入環境變數,即啟用虛擬環境
exit退出
也能夠使用pipenv run .py
不通過啟用虛擬環境而直接執行命令
3.依賴管理
在使用pipenv install 後,在專案資料夾根目錄下會建立Pipfile和Pipfile.py檔案用來記錄使用過的依賴包資訊
可以使用pipenv graph
命令檢視當前環境下的依賴,或是在虛擬環境中使用pip list
檢視依賴列表
1.1.2 安裝Flask
直接使用pipenv install flask
進行下載,如果本地有需要更新,可以使用pipenv update flask
1.1.3 使用IDE進行開發
1.安裝pycharm
2.建立專案
3.在project中新增虛擬環境
1.2 Hello Flask!
1.2.1 基礎程式
第一個示例程式 起名時不要起flask.py
from flask import Flask
app = Flask(__name__)
# name 會根據當前所處的模組來賦予對應的值,如果名字為app.py則這個值為app。
# 事實上這裡就是給app附了一個Flask(app)
@app.route('/')
def index():
return 'hello world'
1.2.2 路由
flask的互動流程:
- 使用者輸入url訪問資源
- flask接收請求並分析url
- 為這個url找到處理函式
- 執行函式並生成響應返回給瀏覽器
- 解析響應並將資訊顯示
如何處理請求併為其定義規則:新增app.route()
路由負責管理URL和函式之間的對映,這個函式就是檢視函式。
在1.2.1 的示例中,
app.route()
將地址/和index()
函式進行繫結,當訪問這個URL時就會觸發index()
函式
-
同時繫結多個URL
能夠使得多個URL地址指向同一個檢視函式
@app.route('/index')
@app.route('/')
def index():
return 'hello world'
-
動態URL
能夠根據變數名來繫結URL@app.route('/index/<name>')
可以根據該變數來傳參給檢視函式def greet(name='123'): # 設定預設值,當用戶沒有輸入name時會返回這個預設值 return 'hello,%s' % name
1.3 啟動開發伺服器
Flask內建了一個簡單的開發伺服器,由Werkzeug提供。
1.3.1 run!
在虛擬環境下使用flask run
就能夠啟動專案,初始預設監聽localhost:5000
1.如果報錯找不到:
- Flask 會去自動查詢當前目錄下名為
app.py
或wsgi.py
的檔案 - 從環境變數FLASK_APP對應的值尋找名為app的程式,如果你的名字不為app.py等,則需要設定環境變數:
set FLASK_APP=hello
2.如何管理環境變數:
參考 https://blog.csdn.net/weixin_42289273/article/details/116231363
安裝python-dotenvpipenv install python-dotenv
然後在專案根目錄下建立兩個檔案:.env和.flaskenv
.flaskenv 用來儲存和flask相關的公開環境變數
.env用來儲存包含敏感資訊的環境變數 git時要用.gitignore來忽略
優先順序: 手動>env>flaskenv
FLASK_APP=hello
FOO = "ABC"
3.在pycharm中執行:
這裡按照書裡的操作方式報錯。 個人是將配置放在同級目錄下進行 flask run