flask框架


關於flask我有話說

flask作為一個輕量級框架,它里面有好多擴展包需要下載,比較麻煩,而且有的時候flask需要在虛擬環境下運行,但是他的優點還是有滴 ,只要是用過Django的人,都會覺得flask是真的 '輕'

Flask自由、靈活,可擴展性強,能結合最流行最強大的Python庫
入門簡單,即便沒有多少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如有神助,一日千里.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM