Saleor:基於Python、Django、GraphQL、React.js的開源免費無頭電子商務平臺,介紹及安裝配置詳細教程(1)後端 GraphQL api 示例數據 管理員賬號

本文由 PurePeace 原創

  • Saleor系列教程之1、saleor介紹及後端GraphQL服務安裝配置
    Saleor:基於Python、Django、GraphQL、React.js的開源免費無頭電子商務平臺saleor,介紹及安裝配置詳細教程(1)後端 GraphQL api 示例數據 管理員賬號:https://blog.csdn.net/qq_26373925/article/details/104265313

  • Saleor系列教程之2、saleor前端安裝配置教程
    Saleor:基於Python、Django、GraphQL、React.js的開源免費無頭電子商務平臺saleor,介紹及安裝配置詳細教程(2)前端 商城頁面:https://blog.csdn.net/qq_26373925/article/details/104270046

  • Saleor系列教程之3、saleor Dashboard安裝配置教程
    Saleor:基於Python、Django、GraphQL、React.js的開源免費無頭電子商務平臺saleor,介紹及安裝配置詳細教程(3)Dashboard 管理後臺:https://blog.csdn.net/qq_26373925/article/details/104271600


項目:saleor
stars:6.7k
簡介:開源的無頭電子商務平臺(商城&網店)
官網:https://saleor.io/


github(後端):https://github.com/mirumee/saleor
github(前端):https://github.com/mirumee/saleor-dashboard
github(dashboard):https://github.com/mirumee/saleor-dashboard

  • 這個項目之前是一件合體的東西(前端+後端+dashboard)三合一,現在三樣東西拆開來,分成了三個項目(我裂開),所以與之前(2.9版本)相差較大

saleor文檔(Next版):https://docs.saleor.io/docs/next/index.html

  • 特別注意不是2.9版本文檔!那個版本即將停止維護了,但是他們官網還沒改。。

演示(商城):https://pwa.saleor.io/
後臺演示(dashboard):https://pwa.saleor.io/dashboard/

在這裏插入圖片描述
在這裏插入圖片描述


1、介紹

saleor是這樣介紹自己的:

A modular, high performance, headless e-commerce storefront built with
Python, GraphQL, Django, and ReactJS.

翻譯過來大概就是:

  • 一個模塊化、高性能,使用Python、GraphQL、Django、ReactJS等技術構建的無頭電子商務平臺(Headless eCommerce

無頭電子商務是個名詞,詳細解釋可以看這篇文章:https://zhuanlan.zhihu.com/p/92992305

這裏我摘了幾段話簡單解釋:

  • 什麼是無頭電子商務(Headless eCommerce)? 無頭電子商務(Headless eCommerce)本質上是指網站“前端與後端完全分離”的電子商務開發模式。

  • 相較於傳統電商(Traditional eCommerce),無頭電商通過API獨立調用網站前後端邏輯構架。消費者體驗、多渠道可拓展性、內容維護與響應速度、開發難度與時間成本獲得顯著優化。目前品牌方正期待爲用戶提供獨特、定製且整合的購物體驗,而無頭電商顯著了消解了達到上述目標的難度。

  • 最重要的是,無頭電商模式下“API即服務”,因此他能夠跨越任何渠道與設備並處理電子商務流程,包括但不僅限於如下渠道的無縫鏈接:官網、小程序、原生APP、智能與穿戴設備(如智能手錶、車載儀表盤的訂單系統)、ERP及門店訂單管理系統等。

大概就是這樣


2、安裝

官方文檔(windows):https://docs.saleor.io/docs/next/getting-started/installation-windows/
官方文檔(linux):https://docs.saleor.io/docs/next/getting-started/installation-linux/
官方文檔(macos):https://docs.saleor.io/docs/next/getting-started/installation-macos/

接下來我選擇在自己的windows10系統下安裝,需要在其它系統下安裝請看官方文檔

- 依賴


1、python

2、Node.js

3、PostgreSQL

4、GTK+

5、Visual C++ build tools

- 項目安裝


1、克隆項目

  • 在某目錄下打開命令行(cmd / powershell)輸入命令:
  • 使用git命令需要先安裝git)
git clone https://github.com/mirumee/saleor.git
  • 稍微有點大,下載時間可能會比較久
    像這樣直接克隆到的項目是後端(GraphQL服務)
    在這裏插入圖片描述

接着進入克隆好的項目目錄

cd saleor

2、安裝項目依賴

此步驟請務必在虛擬環境下進行!以免出現未知問題

python -m pip install -r requirements.txt

4、設置SECRET_KEY(密鑰)

  • 在項目目錄中還有一個名爲saleor的文件夾,我們進入它,然後找到settings.py
  • 在其中找到這段代碼(大概在第180行附近)
# Make this unique, and don't share it with anybody.
SECRET_KEY = os.environ.get("SECRET_KEY")

可以看出,這裏原本是在系統環境變量裏找到 SECRET_KEY 並進行賦值的


5、創建PostgreSQL數據庫用戶

  • 我們安裝的PostgreSQL自帶了一個叫 pgAdmin 的管理工具
  • windows10系統下直接在開始菜單輸入就能找到了
    在這裏插入圖片描述
  • 運行後會打開一個網頁,直接在界面上這樣操作即可
    在這裏插入圖片描述
  • 用戶名saleor,密碼saleor,權限superuser
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 權限全打勾
    在這裏插入圖片描述
  • 角色:管理員(默認叫postgres)
    在這裏插入圖片描述
  • 同時可以在 settings.py 第50行處 DATABASES 字典修改數據庫配置,改成你想要的密碼
DATABASES = {
    "default": dj_database_url.config(
        default="postgres://saleor:saleor@localhost:5432/saleor", conn_max_age=600
    )
}
  • 也可以執行這段sql創建用戶
CREATE ROLE saleor WITH
	LOGIN
	SUPERUSER
	CREATEDB
	CREATEROLE
	INHERIT
	REPLICATION
	CONNECTION LIMIT -1
	PASSWORD 'saleor';
GRANT postgres TO saleor WITH ADMIN OPTION;

6、爲saleor創建並初始化數據庫

創建數據庫

  • 繼續使用 pgadmin 操作即可,右擊Databases點擊Create
    在這裏插入圖片描述
  • 數據庫名,默認設爲saleor,數據庫所有者爲我們上一步創建的用戶
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 也可以執行這段sql進行創建
CREATE DATABASE saleor
    WITH 
    OWNER = saleor
    ENCODING = 'UTF8'
    CONNECTION LIMIT = -1;

接着初始化數據庫

  • 在項目目錄中打開命令行(cmd / powershell)執行
python manage.py migrate

然後等着出現一大堆ok
在這裏插入圖片描述

  • 如果出現問題,請檢查前兩步驟中數據庫用戶、數據庫是否創建正確,以及 settings.py 中的數據庫配置是否正確
  • 執行完後打開數據庫,可以看到創建了一大堆數據表,那麼代表我們這一步成功了

當然,這些數據表都是空的,所以接下來我們需要添加數據,並創建網站管理員賬號

在這裏插入圖片描述


7、創建管理員賬戶

  • 在項目目錄中打開命令行,執行
python manage.py createsuperuser
  • 稍作等待,然後根據提示輸入Email(賬號)密碼,即可創建成功

我們可以在數據庫表 account_user 中看到剛纔新建的管理員賬號
在這裏插入圖片描述


8、創建示例數據

  • saleor又提供了一些示例數據(商品、訂單等)我們把它也創建出來吧
  • 在項目目錄中打開命令行,執行
python manage.py populatedb --createsuperuser
  • 稍作等待,數據就添加到我們的數據庫表中了
  • --createsuperuser 這個參數會額外創建一個管理員賬戶,
    賬號爲 [email protected] ,密碼爲 admin

同樣地,可以打開數據庫查看數據表,我就不發圖了


9、初始化前端資源

在項目目錄中打開命令行(cmd / powershell),執行

  • 如果這一步出現錯誤,請檢查 Node.js 的版本
npm install

下面是無需執行的命令:

npm run build-assets
  • 如果你查看的其它教程或文檔中提到了這段代碼,說明針對的saleor版本不是Next,而是2.9之前的版本,請注意。
  • Next版本中,此命令會執行失敗(因爲無需此步驟)

8、郵箱服務

  • 在項目目錄打開命令行,運行
npm run build-emails

9、啓動服務器

  • 在項目目錄打開命令行,運行
python manage.py runserver

接下來打開網頁,http://127.0.0.1:8000/graphql/

看到這裏,屬於後端的GraphQL服務已經啓動成功了

試試在頁面左側寫入以下內容,然後點擊網頁上的箭頭按鈕:

  • 這是查詢數據庫中前三個商品的語句
query {
  products(first: 3) {
    edges {
      node {
        id
        name
        description
        category {
          name
        }
      }
    }
  }
}
  • 如果數據庫中有商品數據,服務器會像這樣返回json數據:
{
  "data": {
    "products": {
      "edges": [
        {
          "node": {
            "id": "UHJvZHVjdDo3Mg==",
            "name": "Apple Juice",
            "description": "Fell straight from the tree, on to Newton’s head, then into the bottle. The autumn taste of English apples. Brought to you by gravity.",
            "category": {
              "name": "Juices"
            }
          }
        },
        {
          "node": {
            "id": "UHJvZHVjdDo3NA==",
            "name": "Banana Juice",
            "description": "Build your protein the natural way, with exotic banana juice made from ripe fruit and packed with all the goodness of the tropical sun.",
            "category": {
              "name": "Juices"
            }
          }
        },
        {
          "node": {
            "id": "UHJvZHVjdDo3OQ==",
            "name": "Bean Juice",
            "description": "Bean there, drunk that! The energy drink for the health-conscious. Brand new bean juice; from allotment to bottle in under 8 hours.",
            "category": {
              "name": "Juices"
            }
          }
        }
      ]
    }
  }
}
  • 如果沒有數據,那麼就會返回這樣的玩意兒
{
  "data": {
    "products": {
      "edges": []
    }
  }
}

搞定~


至此,saleor後端GraphQL服務及示例數據已經安裝完畢,接下來安裝前端和dashboard吧。


2020年2月11日 PurePeace

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