flask-笔记
-super()
使用super()保留基模板中定義的原始內(nèi)容
-?link標(biāo)簽:
用來(lái)指定當(dāng)前文檔和外部資源的關(guān)系。它最常見(jiàn)的是用來(lái)鏈接樣式表,也用來(lái)創(chuàng)建網(wǎng)站圖標(biāo)(既是網(wǎng)站圖標(biāo)樣式也包括移動(dòng)設(shè)備和app圖標(biāo))。
-csrf:?
CSRF概念:CSRF跨站點(diǎn)請(qǐng)求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,你可以這樣來(lái)理解:
? ? ? ?攻擊者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求,對(duì)服務(wù)器來(lái)說(shuō)這個(gè)請(qǐng)求是完全合法的,但是卻完成了攻擊者所期望的一個(gè)操作,比如以你的名義發(fā)送郵件、發(fā)消息,盜取你的賬號(hào),添加系統(tǒng)管理員,甚至于購(gòu)買(mǎi)商品、虛擬貨幣轉(zhuǎn)賬等
- 重定向:簡(jiǎn)單的來(lái)說(shuō)就是,在你post完一個(gè)表單,點(diǎn)擊刷新按鈕,會(huì)看到一個(gè)莫名其妙的警告,要求在再次提交表單之前進(jìn)行確認(rèn).之所以會(huì)出現(xiàn)這種情況,是因?yàn)樗⑿马?yè)面時(shí)瀏覽器會(huì)重新發(fā)送之前已經(jīng)發(fā)送過(guò)的最后一個(gè)請(qǐng)求.如果這個(gè)請(qǐng)求是一個(gè)包含表單數(shù)據(jù)的post請(qǐng)求,刷新頁(yè)面后會(huì)再次提交表單.大多數(shù)情況下,這并不是理想的處理方式.很多用戶不理解瀏覽器發(fā)出的這個(gè)警告.基于這個(gè)原因,最后別讓web瀏覽器把post請(qǐng)求作為瀏覽器的最后一個(gè)請(qǐng)求.這種需求的實(shí)現(xiàn)方式是,使用重定向,作為post請(qǐng)求的響應(yīng),而不是使用常規(guī)響應(yīng).重定向是一種特殊的響應(yīng),響應(yīng)內(nèi)容是url,而不是包含HTML的字符串.瀏覽器收到這種響應(yīng)時(shí),會(huì)向重定向的url發(fā)起get請(qǐng)求,顯示頁(yè)面的內(nèi)容.
?
-sql 和nosql的區(qū)別:
一、概念
SQL?(Structured?Query?Language)?數(shù)據(jù)庫(kù),指關(guān)系型數(shù)據(jù)庫(kù)。主要代表:SQL?Server,Oracle,MySQL(開(kāi)源),PostgreSQL(開(kāi)源)。
NoSQL(Not?Only?SQL)泛指非關(guān)系型數(shù)據(jù)庫(kù)。主要代表:MongoDB,Redis,CouchDB。
二、區(qū)別
1、存儲(chǔ)方式
SQL數(shù)據(jù)存在特定結(jié)構(gòu)的表中;而NoSQL則更加靈活和可擴(kuò)展,存儲(chǔ)方式可以省是JSON文檔、哈希表或者其他方式。SQL通常以數(shù)據(jù)庫(kù)表形式存儲(chǔ)數(shù)據(jù)。舉個(gè)栗子,存?zhèn)€學(xué)生借書(shū)數(shù)據(jù):
而NoSQL存儲(chǔ)方式比較靈活,比如使用類JSON文件存儲(chǔ)上表中熊大的借閱數(shù)據(jù):
2、表/數(shù)據(jù)集合的數(shù)據(jù)的關(guān)系
在SQL中,必須定義好表和字段結(jié)構(gòu)后才能添加數(shù)據(jù),例如定義表的主鍵(primary?key),索引(index),觸發(fā)器(trigger),存儲(chǔ)過(guò)程(stored?procedure)等。表結(jié)構(gòu)可以在被定義之后更新,但是如果有比較大的結(jié)構(gòu)變更的話就會(huì)變得比較復(fù)雜。在NoSQL中,數(shù)據(jù)可以在任何時(shí)候任何地方添加,不需要先定義表。例如下面這段代碼會(huì)自動(dòng)創(chuàng)建一個(gè)新的"借閱表"數(shù)據(jù)集合:
NoSQL也可以在數(shù)據(jù)集中建立索引。以MongoDB為例,會(huì)自動(dòng)在數(shù)據(jù)集合創(chuàng)建后創(chuàng)建唯一值_id字段,這樣的話就可以在數(shù)據(jù)集創(chuàng)建后增加索引。
從這點(diǎn)來(lái)看,NoSQL可能更加適合初始化數(shù)據(jù)還不明確或者未定的項(xiàng)目中。
?
?
三、補(bǔ)充
目前許多大型互聯(lián)網(wǎng)項(xiàng)目都會(huì)選用MySQL(或任何關(guān)系型數(shù)據(jù)庫(kù)) + NoSQL的組合方案。
?
關(guān)系型數(shù)據(jù)庫(kù)適合存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),如用戶的帳號(hào)、地址:
1)這些數(shù)據(jù)通常需要做結(jié)構(gòu)化查詢(嗯,好像是廢話),比如join,這時(shí)候,關(guān)系型數(shù)據(jù)庫(kù)就要?jiǎng)俪鲆换I
2)這些數(shù)據(jù)的規(guī)模、增長(zhǎng)的速度通常是可以預(yù)期的
3)事務(wù)性、一致性
?
NoSQL適合存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),如文章、評(píng)論:
1)這些數(shù)據(jù)通常用于模糊處理,如全文搜索、機(jī)器學(xué)習(xí)
2)這些數(shù)據(jù)是海量的,而且增長(zhǎng)的速度是難以預(yù)期的,
3)根據(jù)數(shù)據(jù)的特點(diǎn),NoSQL數(shù)據(jù)庫(kù)通常具有無(wú)限(至少接近)伸縮性
4)按key獲取數(shù)據(jù)效率很高,但是對(duì)join或其他結(jié)構(gòu)化查詢的支持就比較差
?
基于它們的適用范圍不同,目前主流架構(gòu)才會(huì)采用組合方案,一個(gè)也不能少。目前為止,還沒(méi)有出現(xiàn)一個(gè)能夠通吃各種場(chǎng)景的數(shù)據(jù)庫(kù),而且根據(jù)CAP理論,這樣的數(shù)據(jù)庫(kù)是不存在的。?
參考:
(1).https://www.cnblogs.com/jeakeven/p/5402095.html
?
-? flask-bootstrap:
Bootstrap(http://getbootstrap.com/)是Twitter 開(kāi)發(fā)的一個(gè)開(kāi)源框架,它提供的用戶界面組件可用于創(chuàng)建整潔且具有吸引力的網(wǎng)頁(yè),而且這些網(wǎng)頁(yè)還能兼容所有現(xiàn)代Web 瀏覽器。
要想在程序中集成Bootstrap,顯然要對(duì)模板做所有必要的改動(dòng)。不過(guò),更簡(jiǎn)單的方法是使用一個(gè)名為Flask-Bootstrap 的Flask 擴(kuò)展,簡(jiǎn)化集成的過(guò)程。Flask-Bootstrap 使用pip安裝:
pip install flask_bootstrapFlask 擴(kuò)展一般都在創(chuàng)建程序?qū)嵗龝r(shí)初始化,下面是Flask_Bootstrap的初始化方法
from flask.ext.bootstrap import Bootstrap bootstrap = Bootstrap(app)初始化Flask-Bootstrap 之后,就可以在程序中使用一個(gè)包含所有Bootstrap 文件的基模板。這個(gè)模板利用Jinja2 的模板繼承機(jī)制,讓程序擴(kuò)展一個(gè)具有基本頁(yè)面結(jié)構(gòu)的基模板,其中就有用來(lái)引入Bootstrap 的元素。
參考:
(1).https://www.cnblogs.com/senlinyang/p/8351720.html
總結(jié)
- 上一篇: 音视频技术 数字电视发展应用
- 下一篇: graSSHopper:一个不错的开源S