該網站是由Python+Flask+MysqL的web建設技術開發的。本系統是一個論壇網站,集我的、評論於一身。未註冊的用戶只能夠瀏覽文章,註冊成爲該系統的用戶,能夠發表文章、評論,上傳頭像,修改密碼,點贊收藏,而且對此做樣式修改。html
系統目標:對系統有一個總體的認識,包括每一個功能實現的流程,產生的數據,技術基礎等前端
進行概要設計:mysql
一、設計系統的整體架構web
二、利用順序圖描述基於該架構下各個類如何協做實現各個待開發的功能算法
三、整理總結出數據字典sql
四、對每個功能進行檢查而且改善數據庫
2 . 網站結構設計數組
主體是首頁,連接各個功能頁面,每一個功能都有相應的html頁面。session
3. 模塊詳細設計數據結構
註冊
js文件:在頁面當中,<form>中設置 action和method="post",<input> 中設置 name
在主py文件中,設置方法,將username和password存入數據庫
登錄
判斷在主py文件:@app.route設置login methods,GET的方法獲得頁面,POST發回讀取表單數據,username和password是否對應數據庫中的,若是符合就容許進入;不符合的話,就提示錯誤不給進入。
提問
在發佈頁面,在form設置action和method,經過主py文件session.add將提問中的title、detail、author_id、cf存入到數據庫中的question表
組合搜索
根據對應文章的名字title與文章內容detail傳值來獲取相關搜索的文章
更換頭像
在指定的文件夾下面將相對應的文件傳入數據庫再傳遞到前端(uploads/f.filename)
更換密碼
先得到原來user.id的password值,而後再將一個新的password提交上去,更換數據庫裏面password的值
4. 數據庫設計
該博客系統使用了Navicat for MySQL 的軟件,在mysql建立數據庫。
創建mysql和app的鏈接,在數據庫配置信息config.py中加入如下配置。
在config.py中加入如下兩項配置:
SQLALCHEMY_DATABASE_URI= = 'mysql+pymysql://root:xxxxx@localhost:3306/mis?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False
在主py(mis1515.py)中加入
import config
app.config.from_object('config')
db = SQLAlchemy(app)
測試是否鏈接成功 db.create_all()
各個表的數據類型
收藏表:用戶能夠收藏喜歡的文章,字段包括該收藏的文章id,用戶id
評論表:字段包括評論的用戶id,問題的id及其評論內容
問答表:字段包括標題,內容,發表的用戶,文章的分類名,瀏覽數,點贊數
用戶表:字段爲用戶名,密碼,評論次數,用戶頭像
1.1加密算法
數據庫中直接存放明文密碼是很危險的,Werkzeug庫中的security可以方便的實現散列密碼的計算
security庫中 generate_password_hash(password,method...)函數將原始密碼做爲輸入,以字符串形式輸出密碼的散列值。check_password_hash(hash,password)函數檢查給出的hash密碼與明文密碼是否相符;
1.2排序算法
本網站分別根據時間('-creat_time')與點擊數('-click')經過迭代進行排序。
二位數組是一種最簡單的數據結構,一張數據庫表就能夠當作是一個二維數組
這個二維數組就表明一張有行和列的表結構:
一、每一行表明一個對象。
二、每一行全部列表明一個對象的全部屬性。
三、每一列固定存儲某一種類型的數據(如:integer、string、date…)。
儘管,二維數組用於存儲表數據很是好,可是當你須要從數組中根據某個條件查詢數據時性能沒法接受。
成品展現
首頁
註冊
登錄
問答
熱門推薦
分類
帖子在首頁佈局
詳情 點贊 收藏
推薦文章
用戶評論
更改頭像 更改密碼
搜索組合
我的信息界面
我的信息統計
資料信息來源於:博客園