Python微型Web框架Flask快速入門
本文轉(zhuǎn)載自微信公眾號「dongfanger」,作者dongfanger。轉(zhuǎn)載本文請聯(lián)系dongfanger公眾號。
Flask是什么
如果說Django是一個開箱即用的自帶完善功能的Web框架,那么Flask就是一個只提供基礎(chǔ)結(jié)構(gòu)的微型框架。這一點從它的GitHub源碼就能看出端倪:
它的核心代碼就只有這么多。微型意味著Flask本身只提供了簡單的核心的功能,但它具備了強大的可擴展性。比如,它不會強制你使用某個ORM框架,而是把選擇權(quán)交給你,讓你自己決定集成哪個擴展。
無論如何,都應(yīng)該學(xué)習(xí)一下Flask,因為它讓你從零開始,了解一個Web框架是如何誕生的:
安裝Flask
Flask需要Python3.6及以上才能使用,最新的async異步支持需要Python3.7及以上。
安裝Flask前可以先創(chuàng)建一個虛擬環(huán)境,這樣相關(guān)的包都放在這個虛擬環(huán)境中。
Mac用戶:
- # 創(chuàng)建
- $ mkdir myproject
- $ cd myproject
- $ python3 -m venv venv
- # 激活
- $ . venv/bin/activate
Windows用戶:
- # 創(chuàng)建
- > mkdir myproject
- > cd myproject
- > py -3 -m venv venv
- # 激活
- > venv\Scripts\activate
然后就通過pip安裝Flask即可:
- $ pip install Flask
Hello World
Flask是一個Web框架,更準(zhǔn)備的說是一個提供接口的后端服務(wù),只需要5行代碼就能實現(xiàn)一個接口:
- from flask import Flask
- app = Flask(__name__)
- @app.route("/")
- def hello_world():
- return "<p>Hello, World!</p>"
截止到目前,還沒見過哪個Web框架是這么玩的,有點顛覆對Web框架的認(rèn)知,印象中的Web框架都是有點龐大的,F(xiàn)lask卻很輕巧的就實現(xiàn)了。
運行后會在控制臺輸出:
- > set FLASK_APP=hello
- > flask run
- * Running on http://127.0.0.1:5000/
瀏覽器訪問http://127.0.0.1:5000/就會看到Hello, World!字樣。
代碼解析
這幾行代碼會做這4件事:
- from flask import Flask,F(xiàn)lask類的實例就是一個WSGI應(yīng)用,這樣才能跑起來。
- app = Flask(__name__),參數(shù)__name__是模塊或包名,這樣Flask才能去查找Web相關(guān)文件。
- @app.route("/"),定義了接口的URL,也就是路由配置,默認(rèn)是GET方法。
- hello_world()函數(shù)是具體的接口處理邏輯代碼,返回了一個HTML字符串。
小結(jié)
本文簡單介紹了Flask是什么,怎么安裝Flask,演示了Hello World的代碼實現(xiàn)Demo,并對代碼進行了解析。為什么一定要學(xué)Flask呢?我最近看了一篇Django vs Flask的最新的比較文章,原文是國外某個博客發(fā)的,里面說道,如果你想在當(dāng)前快速實現(xiàn)某個需求,那么可以選擇使用Django。但是請你有時間務(wù)必回過頭來學(xué)一下Flask,因為這樣才能知道用Python做Web開發(fā)的所有細(xì)節(jié)。
參考資料:
https://flask.palletsprojects.com/en/2.0.x/
https://flask.palletsprojects.com/en/2.0.x/foreword/
https://flask.palletsprojects.com/en/2.0.x/installation/
https://flask.palletsprojects.com/en/2.0.x/quickstart/