文章目錄
項目來源:《Practical Recommender Systems; Kim Falk;January 2019》
源碼地址:Practical Recommender Systems
本篇博文只記錄如何實現電影推薦系統的搭建,詳細介紹可參考從0開始搭建完整的電影推薦系統網站
1. 新建虛擬環境
-
從github上download對應項目
-
打開下載後moviegeek-master文件夾,在文件夾內打開Anaconda promp
conda create -n prs
conda activate prs
-
安裝項目需要的庫,requirements.txt中有本項目所需要的所有依賴庫及對應版本
pip install -r requirements.txt
2. 數據庫設置
2.1 安裝PostGreSQL
-
在此處下載適用於您的操作系統的正確的postgresql版本,然後按照下載頁面上的說明進行安裝和運行。
-
解壓壓縮包,並配置環境變量
-
首先在pgsql(
D:\pgsql
)文件夾下建立一個名爲data的文件夾(這是數據庫的數據存儲文件夾) -
然後在pgsql文件夾下新建一個名爲env.vbs的文件 ,並運行腳本
on error resume next set sysenv=CreateObject("WScript.Shell").Environment("system") 'system environment array Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path 'add variable sysenv("PGHOME")="D:\pgsql" sysenv("PGHOST")="localhost" sysenv("Path")=sysenv("PGHOME")+"\bin;"+sysenv("Path") sysenv("PGLIB")=sysenv("PGHOME")+"\lib" sysenv("PGDATA")=sysenv("PGHOME")+"\data" wscript.echo "PostgreSQL Success"
-
進入bin目錄,以管理員身份打開命令提示符,運行以下命令
# 初始化數據庫 initdb.exe -D D:\pgsql\data -E UTF-8 --locale=chs -U postgres -W # 啓動數據庫 pg_ctl -D D:\pgsql\logfile -l logfile start # 註冊服務 pg_ctl register -N PostgreSQL -D D:\pgsql\data
-
在
D:\pgsql\pgAdmin 4\bin
下,有pgAdmin4.exe,雙擊打開
2.2 爲MovieGEEK創建數據庫
使用PostGreSQL的管理工具pgadmin創建數據庫。命名它moviegeek
。寫下您用來創建數據庫的用戶名和密碼。從現在開始,當您更改Django設置時,將分兩步使用該信息
注意在創建數據庫之前要先檢查PostGreSQL服務是否啓動,如果沒有啓動需要先啓動,不然無法連接
2.3 安裝Python數據庫驅動程序
PostGreSQL數據庫旋轉後,就該使用Python驅動程序了,它可以使Django與該數據庫進行通信。我建議使用Psycopg。在這裏下載。請按照以下說明進行安裝。
在最開始的requirements.txt
中已經配置
2.4 配置Django數據庫連接以連接到PostGreSql
如果您使用PostGreSQL(或其他數據庫),則需要爲MovieGEEKS配置Django數據庫連接,請按照以下步驟操作。如果需要更多詳細信息,請參考此處的Django文檔。
打開 moviegeek-master/prs_project/settings.py
更新以下內容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'moviegeek',
'USER': 'db_user',
'PASSWORD': 'db_user_password',
'HOST': 'db_host',
'PORT': 'db_port_number',
}
}
更新USER,PASSWORD,HOST和PORT字段:
- USER(db_user):通過MovieGEEK數據庫創建的用戶名
- PASSWORD(db_user_password):通過MovieGEEK數據庫創建的密碼
- 主機(db_host):本地主機(如果已在私人計算機上安裝它)
- PORT(db_port_number):5432(默認端口)
有關更多信息,請參考Django文檔鏈接
2.5 創建並填充MovieGEEKS數據庫
-
創建數據庫
python manage.py makemigrations python manage.py migrate --run-syncdb
-
填充數據庫
運行以下腳本以下載MovieGEEKS網站的數據集。
警告:運行Python 3.7或更高版本的Mac用戶在填充數據庫之前,需要運行此命令。
/Applications/Python\ 3.7/Install\ Certificates.command
。這裏 和這裏有更多細節。先處理電影信息
python populate_moviegeek.py python populate_ratings.py
有時候會連接報錯,多試幾次就好了。。。。
3. 申請TMDB的API
您必須使用themoviedb.org創建一個ID才能使用其圖片。
-
轉到https://www.themoviedb.org/account/signup
-
註冊
-
登錄,轉到您的帳戶設置並創建一個API。您可以通過單擊右上角的頭像來訪問設置(默認爲帶有白色徽標的藍色圓圈)。然後,您會在左側看到設置。
-
在moviegeek目錄中創建一個名爲“ .prs”的文件
-
打開.prs並添加{“ themoviedb_apikey”:}記住刪除“ <”和“>”完成後,文件內容應類似於{“ themoviedb_apikey”:“ 6d88c9a24b1bc9a60b374d3fe2cd92ac”}
4. 啓動網絡服務器
要啓動開發服務器,請運行以下命令:
python manage.py runserver 127.0.0.1:8000
像這樣運行服務器將使網站可用http://127.0.0.1:8000