本文由 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
- Python3.8:https://www.python.org/downloads/
- 安裝時請勾選 Add Python 3.8 to PATH (將python加入系統環境變量)
2、Node.js
- 要求安裝Node.js 10或更高的版本:https://nodejs.org/en/download/
- 安裝時請勾選 Add to PATH(將Node.js加入系統環境變量)
3、PostgreSQL
- 要求安裝9.4或更高版本:https://www.postgresql.org/download/windows/
4、GTK+
- 下載windows-64位安裝程序:https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases
- 安裝時請勾選 Set up PATH environment variable to include GTK+
5、Visual C++ build tools
- C++ 生成工具:https://visualstudio.microsoft.com/visual-cpp-build-tools/
- 或者在這裏找:https://go.microsoft.com/fwlink/?linkid=840931
- 項目安裝
1、克隆項目
- 在某目錄下打開命令行(cmd / powershell)輸入命令:
- 使用git命令需要先安裝git)
git clone https://github.com/mirumee/saleor.git
- 稍微有點大,下載時間可能會比較久
像這樣直接克隆到的項目是後端(GraphQL服務)
接着進入克隆好的項目目錄
cd saleor
2、安裝項目依賴
此步驟請務必在虛擬環境下進行!以免出現未知問題
- 創建並激活python虛擬環境:https://docs.python.org/3/tutorial/venv.html
- 因爲有很多需要編譯的輪子,所以安裝用時會比較久
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
並進行賦值的
- 我們直接手動將
SECRET_KEY
變量賦值,就不用改環境變量了,隨便一個字符串即可,但最好要夠安全 - 這裏有django官方對secret-key的說明:https://docs.djangoproject.com/en/1.11/ref/settings/#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服務已經啓動成功了
- GraphQL其實就是一種api,讓你可以像寫sql那樣(類似吧)訪問api
- 這裏是saleor關於GraphQL服務的文檔:https://docs.saleor.io/docs/next/api/intro/
- api文檔:https://docs.saleor.io/docs/next/api-reference/
試試在頁面左側寫入以下內容,然後點擊網頁上的箭頭按鈕:
- 這是查詢數據庫中前三個商品的語句
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吧。
-
系列教程之1、saleor介紹及後端GraphQL服務安裝配置:
Saleor:基於Python、Django、GraphQL、React.js的開源免費無頭電子商務平臺saleor,介紹及安裝配置詳細教程(1)後端 GraphQL api:https://blog.csdn.net/qq_26373925/article/details/104265313 -
系列教程之2、saleor前端安裝配置教程:
Saleor:基於Python、Django、GraphQL、React.js的開源免費無頭電子商務平臺saleor,介紹及安裝配置詳細教程(2)前端 商城頁面:https://blog.csdn.net/qq_26373925/article/details/104270046 -
系列教程之3、saleor Dashboard安裝配置教程:
Saleor:基於Python、Django、GraphQL、React.js的開源免費無頭電子商務平臺saleor,介紹及安裝配置詳細教程(3)Dashboard 管理後臺:https://blog.csdn.net/qq_26373925/article/details/104271600
2020年2月11日 PurePeace