貳 Flask web開發 程式的基本結構

2021-09-19 01:25:47 字數 2928 閱讀 9388

本系列筆記是我閱讀miguel grinberg的《flask web development》的筆記,標題與書本同步。希望通過記錄技術筆記的方式促進自己對知識的理解。

本篇對應書本第二章:程式的基本結構。

from flask import flask #匯入flask模組
注:對於flask開發者來說,傳給flask應用程式建構函式的name引數是比較容易弄混淆的。flask使用這個引數來確定應用程式的根目錄,這樣以後可以相對這個路徑來找到資源檔案。

在flask應用中,路由是指使用者請求的url與檢視函式之間的對映。

flask框架 根據http請求的url在路由表中匹配預定義的url規則,找到對應的檢視函式, 並將檢視函式的執行結果返回wsgi伺服器。

route裝飾器 :可以使用flask應用例項的route裝飾器將乙個url規則繫結到乙個檢視函式上。

下面程式中route裝飾器將根目錄繫結在index檢視上。

def index():

return ''

def user(name):

return '' % name

類似:int 接受整數(float接受浮點數)

path轉換器允許規則匹配包含/的字串。

if __name__ == '__main__':

# 模組是物件,並且所有的模組都有乙個內建屬性 __name__。

# 乙個模組的 __name__ 的值取決於您如何應用模組。

# 如果 import 乙個模組,那麼模組__name__ 的值通常為模組檔名,不帶路徑或者副檔名。

# 但是您也可以像乙個標準的程式樣直接執行模組,

# 在這種情況下, __name__ 的值將是乙個特別預設"__main__"。

# debug=true 除錯模式開啟

from flask import flask

def index():

return ''

if __name__ == '__main__'

執行結果如下:

from flask import flask

def index():

return ''

def user(name):

return '' % name

if __name__ == '__main__'

# 定義了動態路由/user/

執行結果如下:

請求物件封裝了客戶端傳送的http請求。

將請求物件作為引數傳入檢視函式,檢視函式即可訪問請求物件。

from flask import request

def index():

user_agent = request.headers.get('user-agent')

return 'your browser is %s

' % user_agent

flask上下文全域性變數

變數名上下文說明

程式上下文

當前啟用程式的程式例項

g程式上下文

處理請求時用作臨時儲存的物件。每次請求都會重設這個變數。

request

請求上下文

請求物件,封裝了客戶端發出的http請求中的內容。

session

請求上下文

使用者會話,使用者儲存請求之間需要「記住」的值的詞典

程式上下文使用方法:

traceback(most recent call last):

...'hello'

url對映中的head、options、get是請求方法,由路由進行處理。

不同的請求方法傳送到相同的url上時,會使用不同的檢視函式進行處理。

flask支援以下4種鉤子:

from flask import make_response

def index():

response = make_response()

response.set_cookie('answer','42')

return response

from flask import redirect

def index():

return redirect('')

from flask import abort

def get_user(id):

user = load_user(id)

if not user:

abort(404)

return '' % user.name

flask被設計為可擴充套件模式,一些重要功能是用安裝包的形式增加。

(venv)$pip install flask-script

hello.py:使用flask-script

from flask_script import manager

# ...

if __name__ == '__main__':

manager.run()

執行python程式: python hello.py runserver

web伺服器可使用 網路中的任一台電腦進行訪問,其中'a.b.c.d'是伺服器所在計算機的外網的ip位址。

python hello.py runserver --host 0.0.0.0

本文由everfighting創作,採用知識共享署名 3.0 中國大陸許可協議進行許可。

學習Flask Web開發前的準備

一 必備物品 膝上型電腦 本人用的是小公尺筆記本,也就是12.5英吋屏的那一版,4 128g,執行作業系統ubuntu 18.04lts。一本書 關於flask web開發的書還是有不少的,不過不能貪多,多了會讓我無所適從,於是決定只看一本 flask web開發 中文版,英文版實體書沒買到。人民郵...

小白的Flask Web開發學習(1)

下來就開始安裝flask啦 針對windows 系統 virtualenv version 如果報錯說明沒有安裝 python ez setup.py easy install virtualenv 接下來需要建立乙個資料夾,用來儲存 下列命令是在git bash中執行 git clone cd f...

《Flask Web開發》 第二章 應用的基本結構

所有flask應用都必須建立乙個應用例項。web伺服器使用一種名為web伺服器閘道器介面 wsgi,web server gateway inte ce,讀作 wiz ghee 的協議,把接收自客戶端的所有請求都轉交給這個物件處理。應用例項是flask類的物件,由下面 建立 from flask i...