Flask简介与简单项目操作流程
生活随笔
收集整理的這篇文章主要介紹了
Flask简介与简单项目操作流程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Flask框架簡(jiǎn)介
Flask誕生于2010年,是Armin ronacher(人名)用Python語言基于Werkzeug工具箱編寫的輕量級(jí)Web開發(fā)框架。它主要面向需求簡(jiǎn)單的小應(yīng)用。Flask本身相當(dāng)于一個(gè)內(nèi)核,其他幾乎所有的功能都要用到擴(kuò)展(郵件擴(kuò)展Flask-Mail,用戶認(rèn)證Flask-Login),都需要用第三方的擴(kuò)展來實(shí)現(xiàn)。比如可以用Flask-extension加入ORM、窗體驗(yàn)證工具,文件上傳、身份驗(yàn)證等。Flask沒有默認(rèn)使用的數(shù)據(jù)庫(kù),你可以選擇MySQL,也可以用NoSQL。其 WSGI 工具箱采用Werkzeug(路由模塊),模板引擎則使用Jinja2。可以說Flask框架的核心就是Werkzeug和Jinja2。Python最出名的框架要數(shù)Django,此外還有Flask、Tornado等框架。雖然Flask不是最出名的框架,但是Flask應(yīng)該算是最靈活的框架之一,這也是Flask受到廣大開發(fā)者喜愛的原因。
總結(jié)1:Flask也是一款MVC框架
Flask誕生于2010年,是Armin ronacher(人名)用Python語言基于Werkzeug工具箱編寫的輕量級(jí)Web開發(fā)框架。它主要面向需求簡(jiǎn)單的小應(yīng)用。Flask本身相當(dāng)于一個(gè)內(nèi)核,其他幾乎所有的功能都要用到擴(kuò)展(郵件擴(kuò)展Flask-Mail,用戶認(rèn)證Flask-Login),都需要用第三方的擴(kuò)展來實(shí)現(xiàn)。比如可以用Flask-extension加入ORM、窗體驗(yàn)證工具,文件上傳、身份驗(yàn)證等。Flask沒有默認(rèn)使用的數(shù)據(jù)庫(kù),你可以選擇MySQL,也可以用NoSQL。其 WSGI 工具箱采用Werkzeug(路由模塊),模板引擎則使用Jinja2。可以說Flask框架的核心就是Werkzeug和Jinja2。Python最出名的框架要數(shù)Django,此外還有Flask、Tornado等框架。雖然Flask不是最出名的框架,但是Flask應(yīng)該算是最靈活的框架之一,這也是Flask受到廣大開發(fā)者喜愛的原因。
總結(jié)1:Flask也是一款MVC框架
總結(jié)2:核心為Werkzeug,這是由python語言編寫的遵守WSGI協(xié)議的一個(gè)包
- Flask是一款MVC框架,主要是從模型、視圖、模板三個(gè)方面對(duì)Flask框架有一個(gè)全面的認(rèn)識(shí),通過完成作者-讀書功能,先來熟悉Flask框架的完整使用步驟。
- 操作步驟為:
- 1.創(chuàng)建項(xiàng)目
- 2.配置數(shù)據(jù)庫(kù)
- 3.定義模型類
- 4.定義視圖并配置URL
- 5.定義模板
環(huán)境安裝
- 使用虛擬環(huán)境安裝Flask,可以避免包的混亂和版本的沖突,虛擬環(huán)境是Python解釋器的副本,在虛擬環(huán)境中你可以安裝擴(kuò)展包,為每個(gè)程序單獨(dú)創(chuàng)建的虛擬環(huán)境,可以保證程序只能訪問虛擬環(huán)境中的包。而不會(huì)影響系統(tǒng)中安裝的全局Python解釋器,從而保證全局解釋器的整潔。
- 注意:Werkzeug對(duì)python3的支持并不好,所以如果使用Flask框架推薦使用python2
-
虛擬環(huán)境使用virtualenv創(chuàng)建,可以查看系統(tǒng)是否安裝了virtualenv:
virtualenv --version -
運(yùn)行如下命令安裝虛擬環(huán)境的應(yīng)用
- 如果提示找不到mkvirtualenv命令,須配置環(huán)境變量:
- 創(chuàng)建虛擬環(huán)境(ubuntu里須在聯(lián)網(wǎng)狀態(tài)下)
- 進(jìn)入虛擬環(huán)境
- 退出虛擬環(huán)境
- 在虛擬環(huán)境中使用pip命令安裝Flask包
1、創(chuàng)建項(xiàng)目
- 在pycharm點(diǎn)擊菜單File->New Project..
- .
- 在彈出的New Project窗口中,選擇項(xiàng)目類型為Flask,在Location中填寫項(xiàng)目路徑,在Interpreter中選擇上一節(jié)創(chuàng)建的虛擬環(huán)境,然后點(diǎn)擊create按鈕
- 在彈出的Open Project窗口中選擇打開的方式,可以在新窗口,也可以在當(dāng)前窗口,選擇后點(diǎn)擊ok按鈕
- 項(xiàng)目創(chuàng)建完成,在pycharm的project面板顯示目錄結(jié)構(gòu)如下圖
- 文件名稱與項(xiàng)目名稱一致,當(dāng)前為test1.py
- 目錄static用于存放靜態(tài)文件
- 目錄templates用于存放模板文件
- 點(diǎn)擊pycharm右上角的綠色三角可以啟動(dòng)項(xiàng)目,如下圖
- 運(yùn)行效果如下圖
- 修改啟動(dòng)代碼如下,設(shè)置debug=True,再改動(dòng)代碼時(shí)服務(wù)器會(huì)自動(dòng)重啟
- 關(guān)閉服務(wù)器后再重新啟動(dòng)就會(huì)生效
設(shè)計(jì)模型
- 此例中設(shè)計(jì)作者、圖書兩個(gè)模型類,作者-圖書為一對(duì)多關(guān)系
- 在mysql中創(chuàng)建數(shù)據(jù)庫(kù)test1
2、配置mysql數(shù)據(jù)庫(kù)
- 安裝包flask-mysqldb,用于Flask與mysql交互
- 安裝包Flask-SQLAlchemy,用于ORM轉(zhuǎn)換
- 打開test1.py文件
- 引入類SQLAlchemy
- 在app下面編寫數(shù)據(jù)庫(kù)配置
3、定義模型類
- 定義類如下
數(shù)據(jù)操作
- 在啟動(dòng)程序中創(chuàng)建表
- 繼續(xù)編寫代碼,添加示例數(shù)據(jù)
- 點(diǎn)擊運(yùn)行啟動(dòng)服務(wù)器,此時(shí)可以到mysql中查詢表和數(shù)據(jù),表已經(jīng)被創(chuàng)建,并且數(shù)據(jù)也加入成功
編寫視圖
- 視圖的本質(zhì)就是函數(shù)
- 打開test1.py
- 定義函數(shù)authorlist,查詢所有作者信息
- 定義函數(shù)booklist,接收作者編號(hào),查詢指定作者的所有圖書
4、URL配置
- flask的運(yùn)行過程與django的過程是一樣的,如下圖
- 定義完成視圖函數(shù)后,需要為函數(shù)配置url,才可以通過瀏覽器請(qǐng)求到這個(gè)函數(shù)
- 為authorlist配置url
- 運(yùn)行服務(wù)器,在瀏覽器中可以查看訪問效果,訪問作者列表的地址如下
- 為booklist配置url,注意從地址中獲取參數(shù)
- 訪問圖書列表的地址如下,其中1表示作者的編號(hào)
5、定義模板
- 與django一樣,html可以當(dāng)作模板使用,可以編寫html、css、js代碼,也可以編寫模板語言的代碼
- 不同的是flask使用的模板語言名稱為jiaja2,這種語言與django模板語言十分相似
- 在test1.py文件上部引入模板函數(shù)
- 修改hello_world函數(shù)如下,調(diào)用模板
- 在templates目錄下創(chuàng)建hello.html文件,內(nèi)容如下
- 在瀏覽器中請(qǐng)求效果如下圖
- 可以通過函數(shù)向模板中傳遞數(shù)據(jù),修改代碼如下
- 修改模板代碼如下
- 刷新瀏覽器,運(yùn)行效果如下圖
作者列表
- 修改authorlist函數(shù),調(diào)用模板
- 編寫模板alist.html,代碼如下
圖書列表
- 修改authorlist函數(shù),調(diào)用模板
- 編寫模板blist.html,代碼如下
- 本示例完成后效果如下圖,在首頁(yè)中顯示所有的作者信息
- 通過作者鏈接,可以顯示所有的圖書信息
總結(jié)
以上是生活随笔為你收集整理的Flask简介与简单项目操作流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python抽象基类的作用_Python
- 下一篇: 元类及创建元类的方法(面试用