當前位置:成語大全網 - 漢語詞典 - python flask如何組織程序?

python flask如何組織程序?

1.初始化

所有flask程序都必須創建壹個程序實例。

web服務器使用wsgi接口協議將來自接收客戶端的所有請求轉發給該程序實例進行處理。這個程序實例是flask對象。

從燒瓶進口燒瓶

app = Flask(__name__)

#__name__確定程序的根目錄,以便以後可以找到資源文件相對於程序根目錄的位置。

2.路由和查看功能

程序實例需要知道url請求在收到請求後應該運行什麽代碼。從而保存了url和python函數之間的映射關系;這種映射關系稱為路由。

flask程序中工藝路線的編寫:

2.1#使用app.route裝飾器將裝飾後的函數註冊為路由。例如

@ app . route('/')def index():return " & lt;h 1 & gt;Hello World & lt/h1 >

#函數名不壹定要寫成index,只是和裝飾器關聯時寫的函數名。

#將索引函數註冊為程序根路徑的處理程序。函數的返回值被稱為響應,也就是客戶端接收到的內容。

像index這樣的函數叫做嘗試函數,嘗試函數返回的響應可以是包含html的簡單字符串,也可以是復雜的東西。

2.2#變量url部分映射,只需使用特定的decorator語法。

@ app . route('/user/& lt;name & gt')def user(name):return " & lt;h 1 & gt;妳好% s & lt/h1 >%(名稱)

調用嘗試函數時,flask會自動傳入動態部分作為參數。在此功能中,參數用於生成個人歡迎信息。

#備註:路由的動態部分默認使用string類型,可以使用int、float、path定義;例如

3.啟動服務器

調用程序實例app的run方法,啟動flask integration開發的web服務器。

if __name__ == "__main__ ":

app.run(調試=真)

Debug=True代表調試模式。flask的run方法啟動的服務器不適合生產,在這裏只用於測試。

4.壹個完整的燒瓶程序

什麽都不說,先說例子hello.py

從燒瓶進口燒瓶

app = Flask(__name__)

@ app . route('/')def index():return ' & lt;h 1 & gt;HelloWorld & lt/h 1 >;”@ app . route('/user/& lt;name & gt')def user(name):return " & lt;h 1 & gt;妳好% s & lt/h1 >%nameif __name__ == "__main__ ":

app.run(調試=真)

默認情況下,服務器機器的端口5000將被打開;127.0.0.1:5000

執行腳本pythonhello.py。

瀏覽器測試’)

還有壹種特殊的響應類型,flask提供了錯誤響應。這是由中止功能提供的。Abort拋出404異常,拋出異常後,控制權就交給web服務器了。

例如:

從燒瓶導入中止

@ app . route('/user/& lt;id & gt')def get_user(id):

user = load_user(id)如果不是用戶:

中止(404)返回' & lth 1 & gt;妳好,% s & lt/h 1 >;”%(用戶名)

10.flask的擴展flask-script

這個例子主要是關於如何在程序中添加flask擴展並使用

例如,在下面的示例中,您添加了壹個flask-script擴展,並使用命令行參數來增強程序的功能。

使用命令行啟動web服務器,而不是修改文件並將參數傳遞給run方法。

安裝擴展

pip安裝燒瓶-腳本

使用flask-script擴展,並將hello.py文件更改為命令行參數startup #的形式。默認情況下,添加的擴展將安裝在flask.ext名稱空間中。

從flask導入flask從flask.ext.script導入管理器

app = Flask(__name__)

經理=經理(應用程序)

@ app . route('/')def index():return ' & lt;h 1 & gt;HelloWorld & lt/h 1 >;”@ app . route('/user/& lt;name & gt')def user(name):return " & lt;h 1 & gt;妳好% s & lt/h1 >%nameif __name__ == "__main__ ":

manager.run()

壹個管理器類被添加到flask-script擴展中。在上面的示例中,通過將程序實例作為參數傳遞給構造函數來初始化主類的實例,從而初始化擴展。其他後續的長頸瓶擴展基本都是同樣的套路。

修改之後,可以使用壹組基本的命令行選項來啟動和調試程序。

Python hello.py shell#在flask應用上下文環境中運行python shell,方便測試調試web環境。

Python hello.py runserver#運行flask開發服務器app.run()。

Python hello.py -h#顯示幫助信息。

python hello.py runserver -幫助

用法:hello . py runserver[-h][-t HOST][-p PORT][-threaded]

[ -進程進程] [ -直通錯誤] [-d]

[-r]

python hello . pyrunserver-h 0 . 0 . 0 . 0-p 80 #這樣就打開了本機的80端口,其他機器可以遠程訪問。