《Flask Web開發實戰》第一章初識Flask——李輝,讀書筆記

第一章 初識Flask

本章主要介紹了一些關於Flask開發的基本配置問題

開發環境的搭建

使用Pipenv管理Python包

使用pip、Pipflie和Virtualenv替換pip、virtualenv、requirements.txt。它讓包安裝、包依賴管理和虛擬環境管理更加方便,使用它可以實現高效的Python項目開發工作流。
安裝

pip install pipenv

創建虛擬環境
進入項目的工作目錄,使用如下命令,會生成一個python虛擬環境,虛擬環境名字是項目名+一串隨機字符。

pipenv install

在項目工作目錄下,使用如下命令激活環境

pipenv shell
# 使用如下兩個命令可以退出環境
exit
deactivate

或者使用如下命令單次使用虛擬環境運行程序

pipenv run python temp.py

管理依賴
使用pipenv install在項目根目錄下創建會生成Pipfile和Pipfile.lock,兩個文件,前者記錄依賴包,後者記錄詳細的依賴包列表情況
在新的環境下使用如下命令安裝Pipfile文件中的包到新的虛擬環境中。

pipenv install
# 如果需要安裝開發環境依賴包則需要如下命令,纔會安裝Pipfile中的dev-package部分
pipenv install --dev

想要安裝包在虛擬環境中,最好使用pipenv install <包名>進行安裝,會直接把包加到Pipfile中。
使用如下命令查看依賴包的依賴情況。

pipenv graph

hello Flask

對於簡單程序而言,主模塊一般命名爲app.py

from flask import Flask
app = Flask(__name__)

在一個Web應用中,客戶端和服務器上的Flask程序的交互可以簡單概括爲以下幾步:
1、在瀏覽器中輸入URL訪問某個資源
2、Flask接收用戶請求並分析URL
3、爲URL找到處理函數
4、執行函數生成響應,返回瀏覽器
5、瀏覽器接收解析,展示頁面
大部分都有Flask完成,使用app.route()裝飾器,建立URL和函數之間建立關聯。這個過程爲 註冊路由 ,這個函數成爲 視圖函數
在動態路由中設置默認值

@app.route("/greet", defaults={'name':'pro'})
@app.route("/greet/<name>")
def greet(name):
    return "<h1>hello %s!</h1>" % name

等價於

@app.route("/greet")
@app.route("/greet/<name>")
def greet(name='pro'):
    return "<h1>hello %s!</h1>" % name

啓動開發服務器

從0.11開始,替代舊的app.run()的形式使用如下命令啓動Flask

flask run

常用命令如下,默認生產環境,修改爲開發環境後debug默認開啓

export FLASK_APP=hello.py
export FLASK_ENV=development
flask run
# 或
flask run --host=127.0.0.1 --port=7000

自動尋找規則

  • 從當前目錄尋找app.py和wsgi.py模塊,尋找名爲app或application的程序實例
  • 從環境變量FLASK_APP中尋找名app或application

修改環境變量,文件名爲hello.py

# Linux或MacOS
export FLASK_APP=hello
# Windows
set FLASK_APP=hello

PyCharm進行運行配置修改,修改後點擊右上角的圖標進行運行和debug(不能右鍵debug),
Flask官網PyCharm配置
在這裏插入圖片描述
在這裏插入圖片描述

修改默認的重載器

默認使用Werkzeug的內置stat重載器,缺點好點,準確性一般(確實一般反應遲鈍),替換另一個用於文件變動的庫Watchdog。

pipenv install watchdog --dev

–dev是開發時候的依賴,只有在開發室用到。在Pipfile文件中添加到dev-packages部分。
瀏覽器如果有緩存某些文件使用,忽略緩存重載頁面
強制刷新網頁:Ctrl/Shift + F5

修改配置參數

配置文檔地址:http://flask.pocoo.org/docs/latest/config
使用update修改單個、多個值:

app.config['TESTING'] = True
app.config.update(
    TESTING=True,
    SECRET_KEY=b'_5#y2L"F4Q8z\n\xec]/'
)

還可以把配置變量存儲在單獨的 Python 腳本、JSON 格式的文件或是 Python類中, config 對象提供了相應的方法來導人配置。

實現類似flask run的命令的方式

flask中的click:https://flask.palletsprojects.com/en/1.1.x/cli/#custom-commands

click官方文檔: https://click.palletsprojects.com/

結尾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章