第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Flask 框架教程 Flask 框架教程 Flask 項目實戰(zhàn) 1: 功能介紹

Flask 項目實戰(zhàn) 1: 功能介紹

在 Flask 教程的最后,講解一個涉及多個 Flask 知識點的綜合案例,一個功能完整的 Web 應用程序 —— 待做清單。該綜合案例較大,將其分為 3 個部分:

  • Flask 項目實戰(zhàn) 1:功能介紹;
  • Flask 項目實戰(zhàn) 2:后端實現(xiàn);
  • Flask 項目實戰(zhàn) 3:前端實現(xiàn)。

本小節(jié)首先介紹了待做清單的功能,然后講解了程序的總體結構。

1. 功能簡介

本節(jié)使用 Flask 開發(fā)一個功能完整的 Web 應用程序 —— 待做清單,該 Web 應用程序記錄待做事項。程序提供了用戶注冊的功能,用戶登錄后,錄入的待做事項被記錄在服務端,如果換一臺機器,使用瀏覽器登錄后,仍然能夠看到已經錄入的待做事項。

下面的視頻演示了待做清單的功能:

2. 涉及的知識點

本節(jié)開發(fā)的待做清單程序,在保持程序簡短時,盡可能融入了更多的知識點,包括:

  • 模板
  • WTF 表單和表單驗證
  • 藍圖
  • ORM 訪問數據庫
  • 會話 Session

3. 運行程序

3.1 源程序下載

3.2 源文件目錄

程序由多個源文件構成,如下所示:

源文件 描述
db.sql 創(chuàng)建數據庫的 SQL 腳本文件
app.py Flask 應用程序實例以及配置
main.py Flask 應用程序的入口
db.py 提供訪問數據庫的功能函數
users.py 實現(xiàn)藍圖 users,提供登錄、注冊的功能
todos.py 實現(xiàn)藍圖 todos,提供增加、修改、刪除待做事項 todo 的功能
templates/index.html 首頁的頁面模板
templates/login.html 登錄的頁面模板
templates/register.html 注冊的頁面模板
static/style.css 樣式文件
static/script.js 調用后端服務的接口

3.3 安裝相關的庫

為了使用 Flask 框架、數據庫 ORM、表單驗證等模塊,使用 pip3 依次安裝:

pip3 install flask
pip3 install pymysql
pip3 install SQLAlchemy
pip3 install flask-sqlalchemy
pip3 install wtforms
pip3 install flask-wtf

3.4 設置數據庫

例子使用 mysql 數據庫,用戶名為 root,密碼為 ‘123456’,可以在 db.py 中修改用戶名和密碼。

啟動 mysql 后,執(zhí)行數據庫腳本 db.sql 創(chuàng)建數據庫 todoDB:

mysql> source db.sql

3.5 運行程序

main.py 是程序的入口,執(zhí)行如下命令啟動程序:

$ python3 main.py

4. 程序的結構

圖片描述

程序的核心結構如上圖所示,程序由前端與后端構成。

前端的核心操作如下:

  • 在 login.html 中,通過 POST 方法向頁面 /users/login 提交表單請求完成登錄;
  • 在 register.html 中,通過 POST 方法向頁面 /users/register 提交表單請求完成登錄;
  • 訪問頁面 /users/logout 退出系統(tǒng);
  • 在 script.js 中,函數 addTodo () 通過 Ajax 向頁面 /todos/add 請求增加待做事項;
  • 在 script.js 中,函數 updateTodo () 通過 Ajax 向頁面 /todos/update 請求更新待做事項;
  • 在 script.js 中,函數 deleteTodo () 通過 Ajax 向頁面 /todos/delete 請求刪除待做事項。

后端的核心操作如下:

  • Flask 程序使用了 2 個藍圖:users 和 todos;
  • 藍圖 users 定義了頁面 /users/login 、/users/register、/users/logout,登錄和注冊的頁面處理函數是 login 和 register,最終調用 db.js 中的數據庫訪問函數 login 和 register,實現(xiàn)登錄和注冊的功能;
  • 藍圖 todos 定義了頁面 /todos/add、/todos/update、/todos/delete,它們的頁面處理函數是 addTodo、updateTodo、deleteTodo,最終調用 db.js 中的數據庫訪問函數 addTodo、updateTodo、deleteTodo,實現(xiàn)增加、更新、刪除待做事項的功能。

5. 小結

本小節(jié)介紹了待做清單的功能和程序結構,使用思維導圖描述如下:

圖片描述