本項目基于Python3.6、Django2.1、MySql8.0(最好不要使用5.6,字符集等方面均不兼容,否則導入數據庫會出錯)與股票信息工具包TuShare實現。
創建或激活對應Python開發環境
這里使用了conda來管理環境,強烈推薦,避免不同環境包干擾、依賴的問題。
$ conda activate Webdev
(Webdev)$
或者
$ conda create -n Webdev python=3.6
$ conda activate Webdev
(Webdev)$
安裝所需要的依賴包
pip install -r requirements.txt
本項目依賴的核心包有:Django 2.1.15與tushare pro,前者作為主要開發框架,后者是爬取股票數據的核心包。tushare需要依賴pandas等包,用于數據分析和處理。 my-fake-useragent用于生成偽請求頭,爬取相應的新聞數據。 django-mptt用于生成樹形多級評論。
創建對應數據庫(stocktrading)和用戶(trading)
create database stocktrading;
create user ‘trading’@‘localhost’ identified by trading;
grant all privileges on stocktrading to ‘trading’@‘localhost’;
flush privileges;
執行遷移命令,創建模型數據表映射
改命令會根據models.py文件中定義的模型創建數據表結構(無數據)。
$ python manage.py makemigrations
$ python manage.py migrate
將config/下的sql文件導入數據庫中
在mysql環境中執行,會將stocktrading.sql中定義的表結構和數據全部導入。
use stocktrading;
source stocktrading.sql;
開始運行和測試
python manage.py runserver
打開localhost:8000端口即可查看應用。
運行情況
登錄界面
login
在這里插入圖片描述
可以點擊上方注冊按鈕注冊。
注冊頁面
register
輸入相應信息即可完成注冊。 但是考慮到已經導入數據庫sql文件,那么數據庫中應該有了相當數量可以直接登錄的用戶。可以任取一個進行測試。
username: 10071539640 password: 65815609
用戶首頁
index1index2
首頁可以分為4個模塊,傳遞的信息也是比較的豐富。分別是:
熱門牛股:根據每天的股票收盤價格和次日的開盤價格計算差值和漲幅,按照漲幅進行排序得到的前10只熱門牛股;
重大新聞:管理員自己發布或者通過爬蟲獲取到東方財富網上刊登的重大新聞簡要信息,篩選后推薦給用戶。可以點擊換一波瞅瞅查看更多其他感興趣的新聞資訊。有可以點擊新聞標題進入新聞詳情。
看大盤模塊:展示了通過tushare模塊抓取的上證指數變化情況。
我的評論模塊:展示了我(該登錄用戶)近期所發布的對股票的評論信息。也可以點擊評論標題進入評論詳情。
左側的控制菜單面板,可通過該面板進入其他模塊進行管理。
個人信息管理
myprofile
點擊左側用戶信息或者上方導航欄的頭像,可以進入用戶信息界面,在此查看個人信息,并可以進行修改。若修改需要輸入密碼并確認密碼。
點擊修改頭像可以修改頭像。
change_avatar
查看股票列表
stock_list
點擊左側股票列表即可查看股票列表,采用了DataTable組件進行列表展示。其中紅色表示股價上漲的股票, 綠色表示下跌的股票。用戶可以點擊詳情頁面進行查看股票詳情。
股票詳情
stock_detailstock_detail2
用戶在此頁面可以進行買入操作,也可以查看返回到上級頁面查看股票列表。 左上方圖表顯示了這支股票的股價變化日K線圖與實時股價,右側是該股票的股權占比,均是通過tushare 提供接口進行抓取獲得的。
下方是關于股票的評論信息,同時用戶可以發表自己關于這支股票的評論信息。
管理我的股票
mystock_list
點擊管理我的股票,即可查看已經購入的股票列表。 點擊詳情頁面,進入拋售股票頁面。
out_stock
管理我的評論
mycomment
點擊管理我的評論,即可查看我已經發表過的評論信息。
詳情頁面可以查看所有對評論的回復信息,同時自己也可以回復自己的評論。
mycomment_detail。
點擊回復評論的用戶名,可以查看該用戶的詳細信息,也可以為他(她)點贊。
other_profile
同時用戶可以在我的評論列表將評論刪除。
查看新聞詳情
view_news
點擊新聞標題,可以進入新聞的詳情頁面。可以在這個頁面點擊查看上一條或者下一條新聞。
管理員首頁
可以使用如下命令創建管理員:
python manage.py createsuperuser
提示輸入用戶名,郵箱與密碼, 這里依次輸入superuser1,空,superuser1。
這樣就可以以超級管理員身份登錄后臺了。
super_index1super_index
管理員界面與用戶界面大同小異,只是內容更加豐富了一些。
用戶信息管理
點擊左側用戶信息管理進入用戶信息管理詳情頁面。可以看到全部用戶列表。
adm_user
點擊詳情進入用戶信息詳情。
adm_user_detail
在此界面,管理員可以修改部分用戶的信息,不包括密碼。管理員可以凍結用戶的賬號,使其 無法參與股票交易,管理員也可以刪除用戶。
管理股票列表
adm_stock_list
adm_stock_detail
管理交易記錄
adm_trading_list
股票信息維護
upholdupdate
在此界面,管理員可以點擊面板上的按鈕,進行每天股票信息的維護操作。
點擊更新實時數據按鈕后,可以在控制臺看到數據庫更新的打印信息。
新聞管理
adm_news
在新聞管理頁面,管理員可以添加新聞信息,也可以使用爬蟲工具自動獲取一些新聞信息,當然也可以進入新聞 頁面的詳情,對新聞的信息進行編輯或刪除。
評論管理
adm_comment