Python+Django電影推薦系統搭建

項目來源:《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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章