記錄一次關於python-flask藍圖的坑

記錄一次關於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"

這裏我們就可以運行起來測試了。

這裏不知道有沒有細心的人發現,我們爲了記錄模塊更方便,一般都喜歡把名字命名爲一樣的,而這裏有個坑,文件和目錄還有文件內的程序名稱都可以命名成與模塊名字一樣的,但定義函數的時候一定要更改名字,不然你會發現怎樣都運行不起來...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章