默認情況下,Flask 不包含數據庫抽象層、表單驗證,或是其它任何已有多種庫可以勝任的功能。然而,Flask 支持用擴展來(lái)給應用添加這些功能,如同是 Flask 本身實(shí)現的一樣。眾多的擴展提供了數據庫集成、表單驗證、上傳處理、各種各樣的開(kāi)放認證技術(shù)等功能。Flask 也許是“微小”的,但它已準備好在需求繁雜的生產(chǎn)環(huán)境中投入使用。小編推薦大家加一下這個(gè)群:103456743這個(gè)群里好幾千人了!大家遇到啥問(wèn)題都會(huì )在里面交流!而且免費分享零基礎入門(mén)料資料web開(kāi)發(fā) 爬蟲(chóng)資料一整套!是個(gè)非常好的學(xué)習交流地方!也有程序員大神給大家熱心解答各種問(wèn)題!很快滿(mǎn)員了。欲進(jìn)從速哦!各種PDF等你來(lái)下載!全部都是免費的哦!只為幫助大家快速入門(mén),所以小編在群里等你們過(guò)來(lái)一起交流學(xué)習呢!
1.實(shí)例化Flask對象時(shí),可選的參數
template_folder:模板所在文件夾的名字
root_path:可以不用填,會(huì )自動(dòng)找到,當前執行文件,所在目錄地址
在return render_template時(shí)會(huì )將上面兩個(gè)進(jìn)行拼接,找到對應的模板地址
static_folder:靜態(tài)文件所在文件的名字,默認是static,可以不用填
static_url_path:靜態(tài)文件的地址前綴,寫(xiě)成什么,訪(fǎng)問(wèn)靜態(tài)文件時(shí),就要在前面加上這個(gè)
如:在根目錄下創(chuàng )建目錄,templates和static,則return render_template時(shí),可以找到里面的模板頁(yè)面;如在static文件夾里存放11.png,在引用該圖片時(shí),靜態(tài)文件地址為:/xxxxxx/11.png
添加路由關(guān)系的本質(zhì):將url和視圖函數封裝成一個(gè)Rule對象,添加到Flask的url_map字段中

debug = True 是指進(jìn)入調試模式,服務(wù)器會(huì )在 我們的代碼修改后, 自動(dòng)重新載入,有錯誤的話(huà)會(huì )提醒,每次修改代碼后就不需要再手動(dòng)重啟
點(diǎn)擊查看詳情
1.獲取請求數據,及相應






1.可傳入參數:


2.反向生成URL: url_for
endpoint('name') #別名,相當于django中的name





4.自定制正則路由匹配
擴展Flask的路由系統,讓他支持正則,這個(gè)類(lèi)必須這樣寫(xiě),必須去繼承BaseConverter


1.Django中的CBV模式

2.Flask中的CBV



1、模板的使用
Flask使用的是Jinja2模板,所以其語(yǔ)法和Django無(wú)太大差別
Flask中模板里面,執行函數時(shí),需要帶()才執行
1.為了防止xss攻擊,加了驗證,所以頁(yè)面上顯示字符串的形式,解決辦法,有兩種方法
方法一:在后端使用Markup,等價(jià)于Django里的mark_safe
方法一:在后端使用Markup,等價(jià)于Django里的mark_safe
方法二:在前端使用safe
2、自定義模板方法
Flask中自定義模板方法的方式和Bottle相似,創(chuàng )建一個(gè)函數并通過(guò)參數的形式傳入render_template,
run.py


3.宏
只有定義的東西在很多地方去使用的時(shí)候才去用它,
html

除請求對象之外,還有一個(gè) session 對象。它允許你在不同請求間存儲特定用戶(hù)的信息。它是在 Cookies 的基礎上實(shí)現的,并且對 Cookies 進(jìn)行密鑰簽名要使用會(huì )話(huà),你需要設置一個(gè)密鑰。
設置:session['username'] = 'xxx'
刪除:session.pop('username', None)


藍圖用于為應用提供目錄劃分:
小型應用程序:示例
大型應用程序:示例
其他:
藍圖URL前綴:xxx = Blueprint('account', __name__,url_prefix='/xxx')
藍圖子域名:xxx = Blueprint('account', __name__,subdomain='admin')
# 前提需要給配置SERVER_NAME: app.config['SERVER_NAME'] = 'hc.com:5000'
# 訪(fǎng)問(wèn)時(shí):admin.hc.com:5000/login.html
session存在在服務(wù)端的一個(gè)字典里面,session保存起來(lái),取一次里面還是有的,直到你刪除之后才沒(méi)有了
1、本質(zhì)
flash是基于session創(chuàng )建的,flash支持往里邊放值,只要你取一下就沒(méi)有了,相當于pop了一下。不僅可以拿到值,而且可以把其從session里的去掉,
基于Session實(shí)現的用于保存數據的集合,其特點(diǎn)是:使用一次就刪除。
2、閃現的用途
某個(gè)數據僅需用一次時(shí),可以使用閃現


在函數執行之前或函數執行之后想做點(diǎn)事情,有2種方式
第一種:裝飾器
第二種:flask里面的擴展,相當于django中的中間件


運行結果:

還有一個(gè)@app.before_first_request:表示,當程序運行起來(lái),第一個(gè)請求來(lái)的時(shí)候就只執行一次,下次再來(lái)就不會(huì )在執行了

聯(lián)系客服