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