Flask 本身相當(dāng)于一個(gè)內(nèi)核,比如可以用 Flask 擴(kuò)展加入ORM、窗體驗(yàn)證工具,文件上傳、身份驗(yàn)證等。Flask 沒(méi)有默認(rèn)使用的數(shù)據(jù)庫(kù),你可以選擇 MySQL,也可以用 NoSQL。
其 WSGI 工具箱采用 Werkzeug(路由模塊),模板引擎則使用 Jinja2。這兩個(gè)也是 Flask 框架的核心。
Flask常用擴(kuò)展包:
- Flask-SQLalchemy:操作數(shù)據(jù)庫(kù);
- Flask-script:插入腳本;
- Flask-migrate:管理遷移數(shù)據(jù)庫(kù);
- Flask-Session:Session存儲(chǔ)方式指定;
- Flask-WTF:表單;
- Flask-Mail:郵件;
- Flask-Bable:提供國(guó)際化和本地化支持,翻譯;
- Flask-Login:認(rèn)證用戶狀態(tài);
- Flask-OpenID:認(rèn)證;
- Flask-RESTful:開發(fā)REST API的工具;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架;
- Flask-Moment:本地化日期和時(shí)間;
- Flask-Admin:簡(jiǎn)單而可擴(kuò)展的管理接口的框架
中文文檔(http://docs.jinkan.org/docs/flask/)
英文文檔(http://flask.pocoo.org/docs/0.11/)
擴(kuò)展列表:http://flask.pocoo.org/extensions/
jinjia2模板過(guò)濾器
![](/d/20211017/37fd00c00ab42833655a5d91357877c1.gif)
![](/d/20211017/1057ec069791712c3ae7ee3868ccf68c.gif)
from flask import Flask,render_template
app =Flask(__name__)
@app.route('/')
def index():
context ={
'name':'engine',
'age':18,
}
return render_template('index.html',**context)
if __name__ == '__main__':
app.run(debug=True)
![](/d/20211017/dea3645e6ccfb928b8c78e0543316787.gif)
![](/d/20211017/f76825740388cbbcafa40b92636a1133.gif)
abs——絕對(duì)值
![](/d/20211017/9a5921cf1e8ab640c3844e528eebdf5a.gif)
![](/d/20211017/c83c4bd19c78b4c2b475104ef896a563.gif)
![](/d/20211017/c0d02306da75e1c3338d60057352d3a4.gif)
defalut——沒(méi)有值就用默認(rèn)值,有就用有的值
![](/d/20211017/63e0c34b5db5cc154ac7df5089e6f35f.gif)
![](/d/20211017/b06e366d17f89fc87157f3a1cf1d8ac3.gif)
![](/d/20211017/c4ba54a416f202e480dbdd2b1ffd2a60.gif)
![](/d/20211017/a1f68e8b10efcf5fc674bb54e38a5212.gif)
escape(value)或e:轉(zhuǎn)義字符,會(huì)將、>等符號(hào)轉(zhuǎn)義成HTML中的符號(hào)
![](/d/20211017/2eb972086f66ba4e7093ccad363f5ad0.gif)
escape——轉(zhuǎn)義標(biāo)簽
![](/d/20211017/c06fc242dc1d1bf09684feedcd49dfa7.gif)
有開始有結(jié)束{%autoescape 0ff %},{ % endautoescape %}效果等于 |safe
![](/d/20211017/164ba57032e8edb228a251686ccfe124.gif)
第一個(gè)彈窗是escape的過(guò)濾
![](/d/20211017/9c374a111ec7a2bbb8e9ebf27b0fe747.gif)
第二個(gè)彈窗是safe的過(guò)濾
![](/d/20211017/361fe43c66350a04bc7e4451a84d768d.gif)
first、last、length
![](/d/20211017/2c562944a0046b3f4abec0588745780a.gif)
![](/d/20211017/f518c265d98e1f472ee1dc3f000abdb1.gif)
![](/d/20211017/2feccaf3729dd6f201180eaf50df2c4d.gif)
striptags(value):刪除字符串中所有的HTML標(biāo)簽,如果出現(xiàn)多個(gè)空格,將替換成一個(gè)空格
![](/d/20211017/d3280730bab539ac92b11819063f02f4.gif)
![](/d/20211017/4d8662fe86ec554361784d8c857571a0.gif)
嵌套使用
![](/d/20211017/59de768cce5f2da581ec1c39cfb85a99.gif)
![](/d/20211017/d8d2fcc54d781a480334f09c40c80486.gif)
replace
![](/d/20211017/1b57435817f19f891ed072104067f1f1.gif)
![](/d/20211017/9cfa0bf7cbfe4b38f1b02fe996c3be7e.gif)
truncate(value,length=255,killwords=False):截取length長(zhǎng)度的字符串
![](/d/20211017/a8137687330aee8b7bf5d289a648689c.gif)
![](/d/20211017/d6e467f4421dbb9af742eb74ebe2fccc.gif)
![](/d/20211017/f7d75abed143ca826c7827a15f86f83e.gif)
trim——截取字符串前面和后面的空白字符
![](/d/20211017/fff1a2bde06b9322f8ef7893f07a20b7.gif)
![](/d/20211017/1418f811489531782a5ef09efd1f5434.gif)
![](/d/20211017/d17efb0987a82458a87f0ff34859c0b9.gif)
wordcount——計(jì)算一個(gè)長(zhǎng)字符串中單詞的個(gè)數(shù)
![](/d/20211017/ab6fc1f0d91ca0518f09d88680396e47.gif)
![](/d/20211017/706377f13de8e01bb2d56aa09817d698.gif)
![](/d/20211017/9ff772581227ba0b3eaee8f09423a210.gif)
定義過(guò)濾器
![](/d/20211017/f7f340cabdfb76da8daba9f6cc167cde.gif)
![](/d/20211017/ec6088647e58ba6a75195561528d1e38.gif)
![](/d/20211017/9cb4a9b4404ceb2eb8467c7d7e345602.gif)
![](/d/20211017/7a75afe4e367c4eacfdc32e834a54e41.gif)
標(biāo)準(zhǔn)類視圖
![](/d/20211017/e6950fc6f8295ab7458d40e72ec5c3cf.gif)
這是函數(shù)
![](/d/20211017/6f8b47ad3c33fa8f9ef080aa6765ef89.gif)
![](/d/20211017/0846a85a2f54f016aaf56c4c7a99d9fd.gif)
這是類視圖(/profile/是路由(路徑),endpoint是重命名,view_func是綁定的函數(shù)(調(diào)用)
![](/d/20211017/6cd1bda1aaf18af8ab89226db6f96a7c.gif)
![](/d/20211017/8e71bd257fbf3208c2ef7018c9597f70.gif)
同時(shí),在根目錄添加url_for,此時(shí)直接運(yùn)行會(huì)報(bào)錯(cuò)
![](/d/20211017/0011e375e4e50416a1b94c16b1e8fa4d.gif)
![](/d/20211017/08027c5b8d30d088c887b7331b0236d7.gif)
原因在于endpoint重命名了
![](/d/20211017/41040112722aa2a95ee3d978849d03ee.gif)
解決方式是把Url_for的profile改成,endpoint的geren
![](/d/20211017/61a1d98a42edc250da15a68946a95675.gif)
![](/d/20211017/025c139d552b6b0a29d9a5debd10086f.gif)
![](/d/20211017/8a5bc505396d140299b8ad92c952891e.gif)
標(biāo)準(zhǔn)類視圖使用
![](/d/20211017/227fca6ba0e1871efa935b16e5ad3c26.gif)
![](/d/20211017/3781f83456c4453e5725e8e8d1ac2ee1.gif)
會(huì)發(fā)生錯(cuò)誤
![](/d/20211017/1b4daf5f3436e3ec3440eaf239bcac15.gif)
查看views的源代碼——用views的方法必須重寫
![](/d/20211017/b10f474a3f7fc55076efcab5cb196682.gif)
重寫類視圖
![](/d/20211017/3f9a4ac57432b02966319ec3eaf199f6.gif)
成功了
![](/d/20211017/8780ad3557e48d07592d47b4aacc7ef5.gif)
類視圖映射——app.add_url_rule('/路徑/', view_func=類視圖名稱.as_view(‘取名')) 字典數(shù)據(jù)返回轉(zhuǎn)換json數(shù)據(jù)——用jsonify()——需要導(dǎo)包
![](/d/20211017/10c207b8518f0c73bc01f8361ee5ef4b.gif)
![](/d/20211017/4fcd34ff6f594bea1ab2731e9697d120.gif)
登錄注冊(cè)頁(yè)面
![](/d/20211017/e630fc9a26b0e8ea1fb284fdf29da5a5.gif)
![](/d/20211017/6e832c5476fdd6beb03b9f46d44bf292.gif)
![](/d/20211017/f04b18214f7b74eed48bb15b102bdef3.gif)
添加用戶信息,同時(shí)在html渲染出來(lái)
![](/d/20211017/2522b94f19f864d8b31c6c2ef2774712.gif)
![](/d/20211017/f850e9e9e7f9109a40e54c2a6306723c.gif)
![](/d/20211017/385f5f38c104ffd22cc7908c04bfa429.gif)
兩個(gè)用戶名相同,所有抽取出來(lái)——繼承
![](/d/20211017/e4e59f1bdd856e20e1bca7cc14055821.gif)
![](/d/20211017/8558ff932e6b3367b03a942ad255a75d.gif)
基于調(diào)度方式的視圖
![](/d/20211017/515b3ece05c87539e936cd1525f3c448.gif)
![](/d/20211017/f750ded9eadb720b3d209d88709cd069.gif)
復(fù)習(xí)
![](/d/20211017/d671c8ecf9614260c2d04ba76aeee9d9.gif)
![](/d/20211017/6926b65f794026159cbc781e046049eb.gif)
以上就是python flask框架快速入門的詳細(xì)內(nèi)容,更多關(guān)于python flask框架的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
您可能感興趣的文章:- python flask中靜態(tài)文件的管理方法
- Python的Flask框架中Flask-Admin庫(kù)的簡(jiǎn)單入門指引
- Flask的圖形化管理界面搭建框架Flask-Admin的使用教程
- 打包FlaskAdmin程序時(shí)關(guān)于static路徑問(wèn)題的解決