




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《Python程序設計》?精品課件合集單元9基于Flask框架的Web程序設計Python程序設計知識入門知識要點1.Flask的擴展包2.Flask的安裝1.Flask的擴展包(1)Flask-SQLalchemy
:用于操作數據庫。(3)Flask-Mail:用于實現郵件功能。(5)Flask-script:用于插入腳本。(7)Flask-RESTful
:提供開發RESTAPI的工具。(9)Flask-Moment:用于本地化日期和時間。(8)Flask-Bootstrap:用于集成前端TwitterBootstrap框架。(6)Flask-Login:作用判斷用戶狀態。(4)Flask-WTF:用于實現表單功能。(2)Flask-migrate:用于管理遷移數據庫。2.Flask的安裝使用pip命令安裝Flask,具體安裝命令如下。python-mpipinstallflask如果要指定Flask版本,可以使用以下命令。python-mpipinstallflask==0.12.4循序漸進知識要點9.1創建與運行Flask程序9.1.1在PyCharmProfessionalEdition中創建Flask項目9.1.2創建簡單的Flask程序9.1.3開啟調試模式9.2路由9.2.1訪問路徑9.2.2路徑變量9.2.3構造URL9.2.4
HTTP請求方式9.3靜態文件與模板生成9.3.1靜態文件9.3.2生成Flask模板【任務9-1】在網頁中顯示文本信息與圖片【任務9-2】基于Flask框架設計簡單的用戶登錄程序9.1.1在PyCharmProfessionalEdition中創建Flask項目01OPTION啟動PyCharmProfessionalEdition,進入PyCharmProfessionalEdition的集成開發環境。02OPTION在PyCharm
窗口中選擇【文件】菜單,然后選擇【新建項目】命令,打開【新建項目】對話框,該對話框左側列出很多項目模板,這里選擇【Flask】,在“位置”輸入框中輸入Flask項目的存放位置和名稱,例如“D:\PycharmProject\Unit09\9-1”,并完成其他的設置。OR在輸入框右側單擊【瀏覽】按鈕,在彈出的【選擇基目錄】對話框中直接選擇項目存放位置,例如“D:\PycharmProject\Unit09”,然后單擊【確定】按鈕返回【新建項目】對話框,并輸入項目名稱,例如“\9-1”。9.1.1在PyCharmProfessionalEdition中創建Flask項目03OPTIONFlask項目的存放位置、名稱、其他的設置都完成后,在【新建項目】對話框中單擊【創建】按鈕,在彈出的【打開項目】對話框中單擊【新窗口】按鈕,即在新的窗口中打開創建的Flask項目。04OPTION這時會打開一個新的PyCharm
窗口,在其中完成后續工作,例如創建虛擬環境、激活環境等,然后安裝Flask相關文件與配置Flask項目,此時從顯示【正在確保Flask已安裝】對話框,【正在確保Flask已安裝】對話框如圖所示。05OPTIONFlask相關文件安裝與Flask項目配置完成后,PyCharm
將自動生成一個精簡的Flask項目模板,如圖所示。其中,“app.py”文件是入口程序,“static”文件夾用于存放CSS樣式文件、圖片文件等靜態文件,“templates”文件夾是模板存放的位置,即存放網頁文件的文件夾。9.1.2創建簡單的Flask程序【實例9-1】創建一個簡單的Flask程序,輸出“HappytolearnPython”實例9-1的代碼如下所示運行結果Flask程序也是Python程序,其文件擴展名為“.py”。fromflaskimportFlask #導入Flask模塊app=Flask(__name__) #創建Flask對象@app.route('/')defindex(): return"HappytolearnPython"if__name__=='__main__':
app.run()9.1.3開啟調試模式Flask內置了調試模式,可用于自動重載代碼并顯示調試信息,有多種方法可以開啟調試模式。方法一:將FLASK_DEBUG環境變量的值設置為1。方法二:app.debug=Trueapp.run()方法三:app.run(debug=True)開啟調試模式后,修改代碼,然后再次運行程序,會發現Flask會自動重啟。循序漸進知識要點9.1創建與運行Flask程序9.1.1在PyCharmProfessionalEdition中創建Flask項目9.1.2創建簡單的Flask程序9.1.3開啟調試模式9.2路由9.2.1訪問路徑9.2.2路徑變量9.2.3構造URL9.2.4
HTTP請求方式9.3靜態文件與模板生成9.3.1靜態文件9.3.2生成Flask模板【任務9-1】在網頁中顯示文本信息與圖片【任務9-2】基于Flask框架設計簡單的用戶登錄程序9.2.1訪問路徑Flask程序可以以訪問路徑的形式設置訪問路由,訪問路徑設置的基本語法格式如下。@app.route('/path')其中,path表示瀏覽網頁時在“:5000/”后面添加的路徑值,例如“test”。【實例9-2】創建Flask程序,演示訪問路徑的使用方法運行結果運行實例9-2的代碼,在瀏覽器中輸入網址“:5000/”,頁面中輸出文字“訪問網站首頁”。然后在瀏覽器中輸入網址“:5000/test”,頁面中將輸出文字“HappytolearnPython”。9.2.2路徑變量1.沒有限定數據類型語法格式為:/path/<variable_ame>。如果希望獲取“/path/2”這樣的路徑參數,就需要使用路徑變量。路徑變量的基本語法格式如下。/path/<converter:variable_ame>。為路由設置傳遞參數有兩種方式。9.2.2路徑變量2.有限定數據類型語法格式為:/path/<converter:variable_ame>,即在變量名稱前加數據類型。路徑變量前常用的數據類型及作用如表所示。序號轉換器作用1string默認選項,接受除了斜杠之外的字符串2int接受整數3float接受浮點數4path和string類似,還可以接受帶斜杠的字符串5any匹配任何一種轉換器6uuid接受UUID字符串9.2.2路徑變量【實例9-3】創建Flask程序,演示路徑變量與限定數據類型的使用方法運行結果運行實例9-3的代碼,在瀏覽器中輸入網址“:5000/Python程序設計”,頁面中輸出文字“圖書名稱:Python程序設計”。然后在瀏覽器中輸入網址“:5000/user/2”,頁面中輸出文字“用戶ID:2”。9.2.3構造URL在Flask程序中給指定函數構造URL的基本語法格式如下。url_for('函數名稱',命名參數)例如:url_for('index')、url_for('profile',username='admin')。【實例9-4】創建Flask程序,演示給指定函數構造URL的方法運行結果//login/login?id=2/user/adminfromflaskimportFlask,url_forapp=Flask(__name__)@app.route('/')defindex(): pass@app.route('/login')deflogin(): pass@app.route('/user/<username>')defprofile(username): passwithapp.test_request_context(): print(url_for('index')) print(url_for('login')) print(url_for('login',id='2')) print(url_for('profile',username='admin'))9.2.4
HTTP請求方式HTTP訪問URL的請求方式有多種,常用的有GET、POST等。對于GET請求,瀏覽器告訴服務器只獲取頁面上的信息并發給服務器;對于POST請求,瀏覽器告訴服務器想在URL上發布新信息,并且由于POST請求只觸發一次,服務器必須確保數據已經存儲且僅存儲一次,這是HTML表單通常發送數據到服務器使用的方法。默認情況下,路由只回應GET請求,但是通過route()裝飾器傳遞methods參數可以進行改變,告知服務器客戶端想對請求的頁面做些什么。示例如下。說明request對象是一個全局對象,利用它的屬性和方法,可以方便地獲取從頁面傳遞過來的參數。該對象的method屬性用于返回HTTP的請求方式,例如POST和GET。循序漸進知識要點9.1創建與運行Flask程序9.1.1在PyCharmProfessionalEdition中創建Flask項目9.1.2創建簡單的Flask程序9.1.3開啟調試模式9.2路由9.2.1訪問路徑9.2.2路徑變量9.2.3構造URL9.2.4
HTTP請求方式9.3靜態文件與模板生成9.3.1靜態文件9.3.2生成Flask模板【任務9-1】在網頁中顯示文本信息與圖片【任務9-2】基于Flask框架設計簡單的用戶登錄程序9.3.1靜態文件Web程序中常常需要處理靜態文件,靜態文件主要包括CSS樣式文件、JavaScript腳本文件、圖片文件、字體文件等靜態資源。在Flask程序中需要使用url_for()函數并指定相應文件夾名稱和靜態文件名稱。在包或模塊所在的文件夾中創建一個名為“static”的文件夾,然后在程序中使用“static”即可訪問靜態文件。例如引入文件夾“static”中的CSS樣式文件“style.css”的代碼如下。
url_for('static',filename='style.css')在頁面中引入靜態文件的示例代碼如下。
<linktype="text/css"href="{{url_for('static',filename='css/base.css')}}"> <scripttype="text/javascript"src="{{url_for('static',filename='js/base.js')}}"></script> <img
src="{{url_for('static',filename='static/hh.jpg')}}"alt=""title=""/>9.3.2生成Flask模板1.render_template()方法使用Jinja
模板時,只需要使用render_template()方法傳入模板文件名和參數名即可,該方法的基本語法格式如下。render_template(模板文件名稱,[關鍵字參數])其中,第1個參數是模板文件名,第2個參數是可選參數,表示鍵值對象。示例如下。returnrender_template('showText.html')render_template('11-5.html',name=username)name=username是關鍵字參數,name表示參數名,與模板文件的變量名相同,username是當前作用域中的變量,表示同名參數的值。9.3.2生成Flask模板2.Flask模板的基本結構(1){{}}(2){%%}(3){##}用于裝載一個變量,渲染模板的時候,會使用同名參數傳進來的值將其替換掉。例如{{name}},變量name會使用渲染模板時的同名參數name傳進來的值替換。用于裝載一個控制語句。例如{%ifname%}、{%else%}、{%endif%}。用于添加一個注釋,渲染模板的時候會忽視兩個“#”中間的值。例如:{#用戶還沒有登錄#}。9.3.2生成Flask模板3.Flask模板的參數傳遞例如:render_template('11-5.html',name=username)。例如:returnrender_template('about.html',**{'user':'username'})。(1)使用“變量名稱='變量值'”傳遞一個參數(2)使用字典組織多個參數,并且通過兩個“*”將其轉換成關鍵字參數傳入9.3.2生成Flask模板4.Flask模板中的變量定義(1)在模板中使用set語句定義全局變量在Flask模板內部可以使用set語句定義全局變量,變量定義之后的代碼才可以使用這個變量。在解釋性語言中,變量的類型是運行時確定的,因此,這里的變量可以賦任何類型的值。例如{%setname='xx'%}。上面的語句創建的是全局變量。9.3.2生成Flask模板4.Flask模板中的變量定義在Flask模板中,如果想讓定義的變量只在某范圍內有效,則需要使用with語句定義局部變量,with語句中定義的變量,只能在with語句內部使用,超出范圍無效。(2)使用with語句定義局部變量在Flask模板中,也可以使用with語句來創建一個局部變量,將set語句放在with語句內部,這樣創建的變量只在with語句內有效。示例如下。{%withnum=2%} {{num}}{%endwith%}{%with%} {%setnum=2%} {{num}}{%endwith%}示例如下。在網頁中顯示文本信息與圖片【任務9-1】【任務描述】(1)在PyCharm
中創建Flask項目“9-1”,文件夾“9-1”中會自動創建兩個子文件夾“static”和“templates”。(2)在文件夾“templates”中創建兩個網頁文件,分別命名為“showText.html”和“showImage.html”,在網頁中分別顯示文本信息和圖片。(3)在項目“Unit09”中創建Python程序文件“t9-1.py”,在程序中調用render_template()方法加載網頁文件?!救蝿?-1】01【任務實施】02創建Flask項目“9-1”創建Python程序文件“t9-1.py”【任務9-1】【任務實施】創建兩個網頁文件03網頁文件“showText.html”的代碼網頁文件“showImage.html”的代碼運行Flask項目04在PyCharm
窗口中選擇【運行】菜單,在彈出的下拉菜單中選擇【運行】命令。在彈出的【運行】對話框中選擇【t9-1】選項,程序文件“t9-1.py”開始運行。先在瀏覽器中輸入網址“:5000/text”,頁面中輸出文字“陽光明媚、春意盎然、萬象更新”和“Thesunisshining,thespringisfulloflifeandeverythingisrenewed”。然后在瀏覽器中輸入網址“:5000/image”,頁面中顯示一張圖片。【實例9-5】【實例9-5】創建Flask程序,演示模板的基本結構先在瀏覽器中輸入網址“:5000/user”,頁面中輸出文字“請登錄!”。然后在瀏覽器中輸入網址“:5000/user/admin”,頁面中輸出文字“當前用戶:admin”。實例9-5的代碼如下所示網頁文件“e9-5.html”的代碼如下所示運行實例9-5的代碼【實例9-5】【實例9-6】創建Flask程序,演示在模板中使用set和with語句定義變量的方法with語句前面的用戶名:張三第1個with語句里面的用戶名:李四第2個with語句里面的用戶名:王五with語句后面的用戶名:張三實例9-6的代碼如下所示網頁文件“e9-6.html”的代碼如下所示實例9-6代碼的運行結果如下fromflaskimportFlask,render_templateapp=Flask(__name__)@app.route('/show')def
showVariable(): returnrender_template('e9-6.html')if__name__=='__main__':
app.run()基于Flask框架設計簡單的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級生物上冊 2.4.1《細胞分化形成組織》教學設計1 (新版)北師大版
- 2023六年級英語上冊 Unit 3 My weekend plan Part A 第二課時教學設計 人教PEP
- 2024一年級數學下冊 第8單元 探索樂園 2數圖結合規律教學設計 冀教版
- 2023-2024學年人教版九年級化學下冊同步教學設計第十一單元《鹽 化肥》
- Unit 1 Making new friends Period 3 (教學設計)-2024-2025學年人教大同版(2024)英語三年級上冊
- 2018年秋九年級上冊(人教部編版)歷史教學設計:第12課 阿拉伯帝國
- 七年級體育 第11周 第二十二課教學設計
- 2花的學校教學設計-2024-2025學年三年級上冊語文統編版
- 2024秋八年級物理上冊 第3章 光現象 第五節 光的反射教學設計3(新版)蘇科版
- 老年人的營養管理
- 7.2做中華人文精神的弘揚者 教學設計-2024-2025學年統編版道德與法治七年級下冊
- 普通心理學第六版PPT完整全套教學課件
- 2022年《國民經濟行業分類》
- License使用成本估算
- OTN傳輸項目交付實施計劃方案
- 固定頂、外浮頂和內浮頂儲罐
- 裝配鉗工技能大賽實操試卷試題
- 圖文詳解AP1000核電站
- 《網店客服》5套綜合模擬試卷期末考試卷帶答案
- 看字讀顏色--ppt課件
- IH型化工離心泵設計
評論
0/150
提交評論