這是我的畢業設計題目,當初選這個題目以為是最簡單的,沒想到卻要做一個網站。不過既然選擇了,那就好好干吧!
開發環境
- 操作系統:Windows 10
- 數據庫:Mysql 8.0.22
- Vue:2.9.6
- 開發工具:Pycharm Community Edition 2020.1.2、VScode
- 開發語言:Python、HTML、JS、CSS
系統架構
功能介紹
全球疫情實時追蹤
全球疫情實時追蹤頁面,支持折線圖、條形圖、扇形圖、地圖熱力圖展示,圖表由Echarts實現,支持左上角側邊欄跳轉。
全國疫情實時追蹤
全國疫情實時追蹤頁面,支持折線圖、條形圖、扇形圖、地圖熱力圖展示,圖表由Echarts實現,支持左上角側邊欄跳轉。
國內外疫情資訊
國內外疫情資訊展示,官方頭條新聞展示頁面,國內外新聞頁面,點擊都可以跳轉到具體的新聞頁面。
登錄頁面
包括登錄名、密碼輸入,登錄按鈕、重置按鈕。
后台數據管理
后台數據管理頁面,包括了數據源選擇、數據增加按鈕、數據修改按鈕、數據刪除按鈕、注銷按鈕
網站部署
前端部署
打包
1.首先找到config/index.js文件,將assetPublicPath的路徑改為“./”
2.在build目錄下utils.js修改,找到如下配置添加publicPath: '../../'
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath: '../../', //添加上的
})
} else {
return ['vue-style-loader'].concat(loaders)
}
3.npm run build產生dist文件夾
安裝nginx
sudo yum -y install nginx
sudo systemctl start nginx
如果想在系統啟動時啟用Nginx。請輸入以下命令
sudo systemctl enable nginx
上傳部署
將dist文件夾上傳到服務器
vi /etc/nginx/nginx.conf
在include /etc/nginx/default.d/*.conf;下方
location / {
root /var/myapp/dist/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
sudo systemctl restart nginx
后端部署
python3安裝
安裝必要工具 yum-utils ,它的功能是管理repository及擴展包的工具
sudo yum install yum-utils
使用yum-builddep為Python3構建環境,安裝缺失的軟件依賴,使用下面的命令會自動處理
sudo yum-builddep python
完成后下載Python3的源碼包
curl -O https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
最后一步,編譯安裝Python3,默認的安裝目錄是 /usr/local
tar xf Python-3.7.6.tgz
cd Python-3.7.6
./configure
make
sudo make install
#如果你要使用Python3作為python的默認版本,你需要修改一下 #bashrc 文件,增加一行alias參數
#alias python='/usr/local/bin/python3.7'
由於CentOS 7建議不要動/etc/bashrc文件,而是把用戶自定義的配置放入/etc/profile.d/目錄中,具體方法為
vi /etc/profile.d/python.sh
寫入
alias python='/usr/local/bin/python3.7'
chmod 755 /etc/profile.d/python.sh
重啟會話使配置生效
source /etc/profile.d/python.sh
安裝需要的庫
后台運行
nohup /usr/local/bin/python3.7 -u app.py > test.log 2>&1 &
定時運行
用如下命令查看當前系統中的定時任務列表
crontab -l
對crontab進行編輯
crontab -e
這里設置的是每天6,、12、20點整運行腳本
0 6,12,20 * * * /usr/local/bin/python3.7 /home/ec2-user/cov19/app.py > /home/ec2-user/cov19/auto.log
完成后,可以重啟一下crontab的服務即可
service crond restart
安裝數據庫
下載安裝
配置MySQL 8.0的安裝源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
安裝MySQL 8.0
sudo yum --enablerepo=mysql80-community install mysql-community-server
開啟命令systemctl start mysqld
查看狀態systemctl status mysqld
在日志文件中找出密碼
grep "password" /var/log/mysqld.log
mysql -uroot -p
其中‘new password’替換成你要設置的密碼,注意:密碼設置必須要大小寫字母數字和特殊符號(,/';:等),不然不能配置成功
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
修改root賬號遠程訪問權限
mysql> use mysql;
mysql> select host, user, authentication_string, plugin from user; #查看現有用戶
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'Password';# 創建新用戶
mysql> GRANT ALL ON *.* TO 'root'@'%'; # 為新用戶授權
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '040315';#把加密方式改成mysql_native_password
mysql> flush privileges;
存在的BUG
- 頁面切換的時候,上一個頁面對后端的請求依舊存在,沒有銷毀
- 登錄實現依靠數據庫中的status字段實現,不能實現登錄狀態保存,超時退出等功能
- 全球疫情熱力圖展示的數據圖示為英文,轉化成中文失敗
項目地址
[button color="success" icon="" url="https://github.com/ndmiao/cov-19" type=""]點擊下載[/button]
參考
該系統大屏展示頁面參考https://www.bilibili.com/video/BV177411j7qJ實現