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

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

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

在 Flask 教程的最后,講解一個(gè)涉及多個(gè) Flask 知識(shí)點(diǎn)的綜合案例,一個(gè)功能完整的 Web 應(yīng)用程序 —— 待做清單。該綜合案例較大,將其分為 3 個(gè)部分:

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

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

1. 功能簡(jiǎn)介

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

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

2. 涉及的知識(shí)點(diǎn)

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

  • 模板
  • WTF 表單和表單驗(yàn)證
  • 藍(lán)圖
  • ORM 訪問(wèn)數(shù)據(jù)庫(kù)
  • 會(huì)話 Session

3. 運(yùn)行程序

3.1 源程序下載

3.2 源文件目錄

程序由多個(gè)源文件構(gòu)成,如下所示:

源文件 描述
db.sql 創(chuàng)建數(shù)據(jù)庫(kù)的 SQL 腳本文件
app.py Flask 應(yīng)用程序?qū)嵗约芭渲?
main.py Flask 應(yīng)用程序的入口
db.py 提供訪問(wèn)數(shù)據(jù)庫(kù)的功能函數(shù)
users.py 實(shí)現(xiàn)藍(lán)圖 users,提供登錄、注冊(cè)的功能
todos.py 實(shí)現(xiàn)藍(lán)圖 todos,提供增加、修改、刪除待做事項(xiàng) todo 的功能
templates/index.html 首頁(yè)的頁(yè)面模板
templates/login.html 登錄的頁(yè)面模板
templates/register.html 注冊(cè)的頁(yè)面模板
static/style.css 樣式文件
static/script.js 調(diào)用后端服務(wù)的接口

3.3 安裝相關(guān)的庫(kù)

為了使用 Flask 框架、數(shù)據(jù)庫(kù) ORM、表單驗(yàn)證等模塊,使用 pip3 依次安裝:

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

3.4 設(shè)置數(shù)據(jù)庫(kù)

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

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

mysql> source db.sql

3.5 運(yùn)行程序

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

$ python3 main.py

4. 程序的結(jié)構(gòu)

圖片描述

程序的核心結(jié)構(gòu)如上圖所示,程序由前端與后端構(gòu)成。

前端的核心操作如下:

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

后端的核心操作如下:

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

5. 小結(jié)

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

圖片描述