python框架中flask知識(shí)點(diǎn)總結(jié)
有很久沒有更新我的博客了,在學(xué)習(xí)flask去了,別人都說(shuō)flask不難,其實(shí)現(xiàn)在我也這么覺得,但是在剛接觸的時(shí)候還是有點(diǎn)吃力的。
在學(xué)習(xí)的過(guò)程中查閱了不少,也了解了許多,今天想做個(gè)總結(jié)。。。以免覺得學(xué)了那么久什么都沒學(xué)到,還有防止以后忘記。
一.關(guān)于裝飾器,路由
最開始接觸的時(shí)候覺得好神奇,只會(huì)照著敲不知道怎么自己用起來(lái)
@app .route(‘/')
def hello:
print(‘hello')
注意:1.只有@這個(gè)東西是固定的,app 是可以換的,這與藍(lán)本中的定義有關(guān),blueprint給了xx之后在import和@的時(shí)候就是xx哦
2.@下面的def就是你會(huì)被裝飾的函數(shù),至于和誰(shuí)裝飾,這就與route有關(guān)了
3.‘/'也是一個(gè)有趣的東西,現(xiàn)在它還很單調(diào)無(wú)味,等到東西多的時(shí)候可以自己加這玩/post,/login。。。在之后有登入的時(shí)候,還可以變成登入用戶的/post/<name>,具體操作不告訴你,可以思考下,不難。
二.模板
1.我們?cè)谧幽0宓拈_頭定義了”{% extend ‘xx' %}”語(yǔ)句來(lái)聲明繼承,此后在子模板中由”{% block block_name %}”和”{% endblock %}”所包括的語(yǔ)句塊,將會(huì)替換父模板中同樣由”{% block block_name %}”和”{% endblock %}”所包括的部分。
2.如果父模板中的塊里有內(nèi)容不想被子模板替換怎么辦?我們可以使用{{super( )}}
3.塊內(nèi)語(yǔ)句的作用域:默認(rèn)情況下,塊內(nèi)語(yǔ)句是無(wú)法訪問(wèn)塊外作用域中的變量。如果你想在塊內(nèi)訪問(wèn)這個(gè)塊外的變量,你就需要在塊聲明時(shí)(父)添加”scoped”關(guān)鍵字。
4.宏{% macro macro_name() %}{% endmacro %}類似于函數(shù)
5.import和include就是包含 (Include),使用的方法就是”{% include %}”語(yǔ)句。其功能就是將另一個(gè)模板加載到當(dāng)前模板中,并直接渲染在當(dāng)前位置上。它同導(dǎo)入”import”不一樣,”import”之后你還需要調(diào)用宏來(lái)渲染你的內(nèi)容,”include”是直接將目標(biāo)模板渲染出來(lái)。它同block塊繼承也不一樣,它一次渲染整個(gè)模板文件內(nèi)容,不分塊。
三.表單和數(shù)據(jù)庫(kù)
大坑啊
1.提交表單大多用POST
發(fā)送請(qǐng)求的最后一個(gè)請(qǐng)求如果是包含表單數(shù)據(jù)的POST請(qǐng)求的話,刷新頁(yè)面會(huì)再次提交表單,這樣容易提交,例如,之前是下訂單的請(qǐng)求,刷新以后可能是再下一次訂單。所以最好別讓POST作為最后一個(gè)請(qǐng)求。
2.可以用重定向 redirect()有時(shí)候和url_for()一起玩,url_for()參數(shù)可以是被裝飾的函數(shù)的函數(shù)名,例如main.index
3.添加會(huì)話db.session.add()和db.session.commit()提交會(huì)話
4.每次更改了表單的列的時(shí)候記得更新啊
相關(guān)文章
python中如何實(shí)現(xiàn)將數(shù)據(jù)分成訓(xùn)練集與測(cè)試集的方法
這篇文章主要介紹了python中如何實(shí)現(xiàn)將數(shù)據(jù)分成訓(xùn)練集與測(cè)試集的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Python通過(guò)命令提示符安裝matplotlib
這篇文章主要給大家介紹了關(guān)于Python通過(guò)命令提示符安裝matplotlib的相關(guān)資料,文中還介紹了離線安裝這一種方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-11-11Python實(shí)現(xiàn)根據(jù)指定端口探測(cè)服務(wù)器/模塊部署的方法
這篇文章主要介紹了Python根據(jù)指定端口探測(cè)服務(wù)器/模塊部署的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08Django objects.all()、objects.get()與objects.filter()之間的區(qū)別介紹
這篇文章主要給大家介紹了關(guān)于Django objects.all()、objects.get()與objects.filter()之間的區(qū)別,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06Python3標(biāo)準(zhǔn)庫(kù)之functools管理函數(shù)的工具詳解
functools模塊提供的主要工具就是partial類,可以用來(lái)“包裝”一個(gè)有默認(rèn)參數(shù)的callable對(duì)象。這篇文章主要介紹了Python3標(biāo)準(zhǔn)庫(kù)functools管理函數(shù)的工具的實(shí)例詳解,需要的朋友可以參考下2020-02-02python 文件的基本操作 菜中菜功能的實(shí)例代碼
這篇文章主要介紹了python 文件的基本操作 菜中菜功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07