關於flask我有話說
flask作為一個輕量級框架,它里面有好多擴展包需要下載,比較麻煩,而且有的時候flask需要在虛擬環境下運行,但是他的優點還是有滴 ,只要是用過Django的人,都會覺得flask是真的 '輕'
Flask自由、靈活,可擴展性強,能結合最流行最強大的Python庫
入門簡單,即便沒有多少web開發經驗,也能很快做出網站
非常適用於小型網站
非常適用於開發web服務的API
開發大型網站無壓力,但代碼架構需要自己設計,開發成本取決於開發者的能力和經驗
各方面性能均等於或優於Django
Django自帶的或第三方的好評如潮的功能,Flask上總會找到與之類似第三方庫
Flask靈活開發,Python高手基本都會喜歡Flask,但對Django卻可能褒貶不一
Flask與關系型數據庫的配合使用不弱於Django,而其與NoSQL數據庫的配合遠遠優於Django
入門簡單,即便沒有多少web開發經驗,也能很快做出網站
非常適用於小型網站
非常適用於開發web服務的API
開發大型網站無壓力,但代碼架構需要自己設計,開發成本取決於開發者的能力和經驗
各方面性能均等於或優於Django
Django自帶的或第三方的好評如潮的功能,Flask上總會找到與之類似第三方庫
Flask靈活開發,Python高手基本都會喜歡Flask,但對Django卻可能褒貶不一
Flask與關系型數據庫的配合使用不弱於Django,而其與NoSQL數據庫的配合遠遠優於Django
flask里面的技術點有很多,比如cookie ,session ,過濾器 ,四個鈎子,werkzeug和jinja2 ,藍圖.等等.
先來說說這四個鈎子,很多人會問:鈎子?什么鈎子,肯定一臉懵逼,對於鈎子我的理解是: 可以把flask四種鈎子看作是修飾器,我們在后端可以進行調用做相關的操作.使用鈎子函數時,我們需要借助flask的全局變量g.g作為中間變量,在鈎子函數和視圖函數中間傳遞數據.我們先引入全局變量g
下面是四個鈎子的代碼
# redirect 跳轉(重定項) jsonify標准的json類型 url_for跳轉 from flask import Flask,request,jsonify,redirect,url_for # 初始化 # from Config import Config app =Flask(__name__) # ascii碼為False ,不會顯示ascii碼 app.config['JSON_AS_ASCII'] = False # 指定方法,自己輸出 @app.route("/helloe") def hellow(): id = request.form.get('id') name = request.form.get('name') userdict = {'id':1,'name':'張三'} return jsonify(userdict) # 輸出的內容 # errorhandler 用來捕獲異常,並提示 @app.errorhandler(404) def server_(e): return '此頁面不從在' @app.errorhandler(405) def server_(e): return '此頁面不允許訪問' @app.before_first_request def before_(): print('第一次訪問的時候執行') @app.before_request def before_(): print('每一次執行的時候執行') @app.after_request def after_(): print('每一次執行之后') @app.teardown_request def teardown(e): print('當發生異常的時候,獲取異常') print(e) return e if __name__ == '__main__': # debug自動識別我們的代碼 app.run(debug=True,host='127.0.0.1',port='8888')
flask有兩大核心:WerKzeug和Jinja2
WerKzeug是一個遵循WSGI協議的python函數庫
Jinja2是Python下一個被廣泛應用的模板引擎,是由Python實現的模板語言,他的設計思想來源於 Django 的模板引擎,並擴展了其語法和一系列強大的功能,其是Flask內置的模板語言.
模板語言:是一種被設計來自動生成文檔的簡單文本格式,在模板語言中,一般都會把一些變量傳給模板,替換模板的特定位置上預先定義好的占位變量名.
CSRF(這是我從網上找的一段話,因為我對這個也不是太了解) :
CSRF全拼為Cross Site Request Forgery,譯為跨站請求偽造。
CSRF指攻擊者盜用了你的身份,以你的名義發送惡意請求。
包括:以你名義發送郵件,發消息,盜取你的賬號,甚至於購買商品,虛擬貨幣轉賬
造成的問題:個人隱私泄露以及財產安全。

今天就寫這么多了,其實我覺得不管是什么框架,flask也行,Django也好,都是一樣的,我們不是靠着那兩句flask才能走完一個項目,現在Django在市場上正火熱,好多人都去學習,我覺的只有你有業務邏輯,編程思維,學起來什么都特別快,在打代碼之前,想一想你下一步要做些什么,你想要的效果是什么樣的,無非就是CV大法,刪刪改改的,好了,就這些了,祝大家學習flask如有神助,一日千里.