一次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 Flaskapp = 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 Flaskfrom 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.pyfrom 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藍圖踩坑內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: