日程管理系統文檔
本學期的軟件工程作業,使用Flask框架做了一個日程管理系統。其中數據庫的部署和效果展示在B站有視頻解說,戳我去B站。
源碼在Github倉庫可查看。
建模圖例
- 代碼中,一共有兩個主要的class,分別為用戶(User)和日程(Event)。每個表單也是一個class,繼承於FlaskForm。
- 具體展示頁面和使用方法已經在展示視頻中給出。
活動圖
登錄活動圖
添加/修改日程活動圖
用例圖
順序圖
登錄順序圖
添加/修改日程順序圖
類圖
狀態圖
用戶狀態圖
日程狀態圖
系統部署說明
簡介
- 后端使用Python3.6.8,前端用了Bootstrap模板
- Flask框架以及插件和版本如下所示(命令行在后面)
SQLAlchemy 1.3.15
sqlalchemy-migrate 0.13.0
Werkzeug 0.16.0
Flask 1.1.1
Flask-Babel 1.0.0
Flask-Bootstrap 3.3.7.1
Flask-Datepicker 0.12
Flask-Login 0.4.1
Flask-Mail 0.9.1
Flask-Migrate 2.2.1
flask-mongoengine 0.9.5
Flask-OpenID 1.2.5
Flask-Script 2.0.6
Flask-SQLAlchemy 2.3.2
Flask-WhooshAlchemy 0.56
Flask-WTF 0.14.2
Jinja2 2.10.3
WTForms 2.2.1
1. 配置環境Bash命令
cd Calendar # 進入代碼所在目錄
pip3 install virtualenv
virtualenv calendar_flask # 為了避免混亂,創建一個虛擬環境
source calendar_flask/bin/activate #激活該虛擬環境
# pip --version 查看版本是3.6即可繼續安裝
pip install -r requirement.txt #安裝依賴包
2. 修改代碼中讀取sqlite數據庫文件為絕對路徑
在main.py
文件中,這一行需要修改:
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////database.db'
# 注意這里要求database.db文件路徑為絕對路徑
# 例如:
# app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////Users/wangshanshan/Desktop/Calendar/database.db'
3. 初始化數據庫后開始運行
# 接着上面的Bash命令
sqlite3 database.db # 建立數據庫文件
.exit
# ---- 分割線 ----
python3 # 根據系統不同可能使用python或者py
from main import db
db.drop_all()
db.create_all()
quit() # 完成數據庫初始化
python3 main.py # 開始運行
【Tips】網絡連接需要
- 可能需要穩定的network環境,不然第一次加載html中使用的一些在線JS/CSS文件會比較慢,並不是后台的問題
展示后修改說明
- 削減掉了首頁點擊「日歷」后要登錄才能跳轉的功能,不會出現點擊幾次蜜汁登錄不上的情況