一次python-flask藍圖的踩坑記錄
一.簡介
Flask是一個使用Python編寫的輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask使用BSD授權。
Flask被稱為“microframework”,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的數據庫、窗體驗證工具。然而,Flask保留瞭擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。
二.特色
學習python的朋友可能都聽說過django與flask這兩個框架,django重量級,flask輕量級,至於多麼輕量呢,創建好flask初始化環境後,隻需要僅僅幾行的代碼就可以運行:
from flask import Flask app = Flask(__name__) @app.route("/") #定義路由地址 def hello(): return "Hello World!" #return為這個定義的函數所返回的信息 if __name__ == "__main__": #這裡可以直接寫app.run,但不規范,簡單理解,name中有個“接口”,main是這個接口的啟動地址 app.run()
而運行它也很簡單:
python hello.py
三.flask規模化
輕量有輕量的好處,重有重的好處,我個人喜歡簡單,所以學習python web就直接flask框架上手瞭,有過其它web編程經驗的小夥伴應該都知道,一個項目的構建需要很多部分,比如後端的構建,分為view,api接口等,而flask並沒有完全的給我們劃分好這些模塊,這就需要我們自己去構建瞭。
我們都知道一個web應用都需要“路由”功能,來連接尋找我們請求的地址,這個路由可能是靜態或動態的,但功能都是通過前端用戶訪問的URL來返回前端所需要的信息,如上述代碼,可以在app.py中定義多個路由,那如果有很多模塊怎麼辦呢,比如:登錄,發送信息,上傳信息,驗證信息等,不可能全部寫在這一個文件中,如果被別人看見絕對會被揍。。。
四. flask Blueprint
關於啟動文件引入其他文件中的模塊的實現很簡單,我們先來看一下:
# app.py //這裡是一個程序啟動的入口文件 from flask import Flask from view.api import api #view為在當前目錄下的目錄下有個api模塊,引入其中的api方法 from flask_cors import CORS #這裡是跨域解決方法,如果你本地搭建瞭其它服務來測試當前接口同一瀏覽器下是無法訪問滴 run = Flask(__name__) CORS(run) run.register_blueprint(api) #嵌入api模塊 if __name__ == '__main__': run.run(debug=True)
api模塊:
#api.py from flask import * api = Blueprint("api", __name__) #告訴flask這個文件是“藍圖”,跨域在其他文件中引入 @api.route("/") #把app.py下的根路由拿來過來 def index(): return "hello world" @api.route("/api", methods=["POST", "GET"]) #定義路由與接受的請求方法 def test(): return "this is api router"
這裡我們就可以運行起來測試瞭。
這裡不知道有沒有細心的人發現,我們為瞭記錄模塊更方便,一般都喜歡把名字命名為一樣的,而這裡有個坑,文件和目錄還有文件內的程序名稱都可以命名成與模塊名字一樣的,但定義函數的時候一定要更改名字,不然你會發現怎樣都運行不起來…
總結
到此這篇關於python-flask藍圖踩坑的文章就介紹到這瞭,更多相關python-flask藍圖踩坑內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Pyhon Flask框架:第一個Flask程序
- Flask 入門Web 微框架Hello Flask
- python的簡單web框架flask快速實現詳解
- Flask 使用Gunicorn部署服務介紹
- Python Flask入門