一次python-flask藍(lán)圖的踩坑記錄
一.簡介
Flask是一個(gè)使用Python編寫的輕量級Web應(yīng)用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask使用BSD授權(quán)。
Flask被稱為“microframework”,因?yàn)樗褂煤唵蔚暮诵模胑xtension增加其他功能。Flask沒有默認(rèn)使用的數(shù)據(jù)庫、窗體驗(yàn)證工具。然而,F(xiàn)lask保留了擴(kuò)增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗(yàn)證工具、文件上傳、各種開放式身份驗(yàn)證技術(shù)。
二.特色
學(xué)習(xí)python的朋友可能都聽說過django與flask這兩個(gè)框架,django重量級,flask輕量級,至于多么輕量呢,創(chuàng)建好flask初始化環(huán)境后,只需要僅僅幾行的代碼就可以運(yùn)行:
from flask import Flask
app = Flask(__name__)
@app.route("/") #定義路由地址
def hello():
return "Hello World!" #return為這個(gè)定義的函數(shù)所返回的信息
if __name__ == "__main__": #這里可以直接寫app.run,但不規(guī)范,簡單理解,name中有個(gè)“接口”,main是這個(gè)接口的啟動(dòng)地址
app.run()
而運(yùn)行它也很簡單:
python hello.py
三.flask規(guī)模化
輕量有輕量的好處,重有重的好處,我個(gè)人喜歡簡單,所以學(xué)習(xí)python web就直接flask框架上手了,有過其它web編程經(jīng)驗(yàn)的小伙伴應(yīng)該都知道,一個(gè)項(xiàng)目的構(gòu)建需要很多部分,比如后端的構(gòu)建,分為view,api接口等,而flask并沒有完全的給我們劃分好這些模塊,這就需要我們自己去構(gòu)建了。
我們都知道一個(gè)web應(yīng)用都需要“路由”功能,來連接尋找我們請求的地址,這個(gè)路由可能是靜態(tài)或動(dòng)態(tài)的,但功能都是通過前端用戶訪問的URL來返回前端所需要的信息,如上述代碼,可以在app.py中定義多個(gè)路由,那如果有很多模塊怎么辦呢,比如:登錄,發(fā)送信息,上傳信息,驗(yàn)證信息等,不可能全部寫在這一個(gè)文件中,如果被別人看見絕對會(huì)被揍。。。
四. flask Blueprint
關(guān)于啟動(dòng)文件引入其他文件中的模塊的實(shí)現(xiàn)很簡單,我們先來看一下:
# app.py //這里是一個(gè)程序啟動(dòng)的入口文件 from flask import Flask from view.api import api #view為在當(dāng)前目錄下的目錄下有個(gè)api模塊,引入其中的api方法 from flask_cors import CORS #這里是跨域解決方法,如果你本地搭建了其它服務(wù)來測試當(dāng)前接口同一瀏覽器下是無法訪問滴 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這個(gè)文件是“藍(lán)圖”,跨域在其他文件中引入
@api.route("/") #把a(bǔ)pp.py下的根路由拿來過來
def index():
return "hello world"
@api.route("/api", methods=["POST", "GET"]) #定義路由與接受的請求方法
def test():
return "this is api router"
這里我們就可以運(yùn)行起來測試了。
這里不知道有沒有細(xì)心的人發(fā)現(xiàn),我們?yōu)榱擞涗浤K更方便,一般都喜歡把名字命名為一樣的,而這里有個(gè)坑,文件和目錄還有文件內(nèi)的程序名稱都可以命名成與模塊名字一樣的,但定義函數(shù)的時(shí)候一定要更改名字,不然你會(huì)發(fā)現(xiàn)怎樣都運(yùn)行不起來...
總結(jié)
到此這篇關(guān)于python-flask藍(lán)圖踩坑的文章就介紹到這了,更多相關(guān)python-flask藍(lán)圖踩坑內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信