教你部署開源的Python超漂亮電子商城 — Saleor

教你部署開源的Python超漂亮電子商城 — Saleor

Saleor 是一個快速發展的開源電子商務平臺,基於 Python 和 Django開發,且持續更新中,一點不用擔心版本過舊的問題。

它的特點如下:

1。

GraphQL API

:基於GraphQL實現的前後端分離,屬於最前沿的技術。

2。

儀表板

:管理員可以完全控制使用者、流程和產品。

3。

訂單

:訂單、發貨和退款的綜合系統。

4。

購物車

:高階付款和稅收選項,支援折扣和促銷活動

5。

支付

:靈活的 API 架構允許整合任何支付方式。

6。

地理自適應

:自動支援多國家的結賬體驗。

7。

支援雲部署

:支援Docker部署。

8。

支援谷歌分析

:集成了谷歌分析,可以很方便地分析流量去留。

Saleor 倉庫地址:

https://github。com/mirumee/saleor

1.部署指南

Saleor支援多種執行方式,你可以採用手動安裝並執行的方式,也可以使用Docker進行執行,下面介紹全平臺通用且最簡單的Docker部署方案。

在按照以下說明操作之前,你需要安裝Docker Desktop和Docker Compose,如果你沒安裝過,可以看看這篇教程:

https://www。runoob。com/docker/docker-tutorial。html

Docker 部署 Saleor 非常方便,你只需要克隆儲存庫並構建映象然後執行服務即可:

教你部署開源的Python超漂亮電子商城 — Saleor

如果你無法成功克隆 Salor 原始碼倉庫,請在Python實用寶典公眾號回覆:

Saleor

下載全部原始碼。

Saleor 使用共享資料夾來啟用

實時程式碼重新載入

。如果你使用的是

Windows

MacOS

,則需要:

1。將克隆的 saleor-platform 目錄放置到 Docker 的共享目錄配置 (

Settings

->

Shared Drives

or

Preferences

->

Resources

->

File sharing

)。

2。確保在 Docker 首選項中你有至少 5 GB 的專用記憶體(

設定

->

高階

首選項

->

資源

->

高階

執行資料庫migrations及打包前端資源:

教你部署開源的Python超漂亮電子商城 — Saleor

(可選)使用示例資料填充資料庫:

教你部署開源的Python超漂亮電子商城 — Saleor

最後,為自己建立一個管理員帳戶:

教你部署開源的Python超漂亮電子商城 — Saleor

執行服務:

使用以下命令執行Saleor:

教你部署開源的Python超漂亮電子商城 — Saleor

很多小夥伴在學習python的時候總會遇到一些問題和瓶頸,沒有方向感,不知道該從哪裡入手去提升,對此我整理了一些資料,希望能夠去幫助到小夥伴們,可以關注up主,並在後臺私信小編:“資料”即可領取。

教你部署開源的Python超漂亮電子商城 — Saleor

2.架構介紹

如果你要基於 Saleor 進行開發,那麼你必須瞭解它的架構。

教你部署開源的Python超漂亮電子商城 — Saleor

Saleor 由三個重要元件組成:

1.Saleor Core,

它是GraphQL API的後端伺服器。基於Django開發,資料庫採用了PostgreSQL並在Redis中儲存了一些快取資訊。

2.Saleor Dashboard

, 這是一個可以用來經營商店的儀表盤,它是一個靜態網站,因此沒有任何自己的後端程式碼,它是一個與Saleor Core核心伺服器對話的React程式。

3.Saleor Storefront,

這是基於React實現的示例商店,你可以自定義這部分程式碼滿足你自己的需求,也可以使用 Saleor SDK 構建自定義店面。

所有三個元件都使用 GraphQL 透過 HTTPS 進行通訊。

3.擴充套件開發

雖然你可以直接基於Saleor原始碼進行開發,但是官方建議不這麼做,原因是一旦你的程式碼和Saleor官方原始碼產生衝突,你就很難跟上官方的更新,最終會導致程式碼沒人維護的尷尬局面。

因此Saleor提供了兩種新增功能的方式:

1.外掛功能

:外掛提供了一種在 Saleor Core 上執行附加程式碼的能力,而且有訪問資料庫的能力。

2.APPS

:基於 GraphQL API 和 Saleor Core 開發APP,還可以使用 WebHooks 訂閱事件。

下面我們介紹如何基於外掛進行擴充套件開發。

教你部署開源的Python超漂亮電子商城 — Saleor

如上圖所示,Saleor Core 提供了一種回撥通知事件給外掛,外掛基於此事件進行相關操作,並與資料庫進行互動。

開發外掛,

你必須繼承 BasePlugin 基類,然後重寫部分方法,比如下面這個例子重寫了

postprocess_order_creation

方法,增加了訂單建立時的一些操作:

教你部署開源的Python超漂亮電子商城 — Saleor

載入外掛,

需要在 setup。py 進行配置來自動發現已安裝的外掛。要使外掛可被發現,你需要設定

entry_points

saleor_plugins

欄位, 並使用這個語法定義外掛:

package_name = package_name.path.to:PluginClass

示例如下:

教你部署開源的Python超漂亮電子商城 — Saleor

如果你的外掛是 Django 應用程式,包名(等號前的部分)將被新增到 Django 的

INSTALLED_APPS

中,以便你可以利用 Django 的功能,例如 ORM 整合和資料庫遷移。

注意到我們前面訂單建立時的操作使用了 。delay 的語法,這是 Celery 的非同步任務。因為有些外掛的操作就應該非同步完成,Saleor 使用 Celery 並將發現 tasks。py 在外掛目錄中宣告的所有非同步任務:

教你部署開源的Python超漂亮電子商城 — Saleor

上面這個

api_post_request

函式就是前面外掛用到的非同步任務,在外掛呼叫delay方法後,這個任務將被塞到佇列中非同步執行。

好了,上面就是一個簡單的外掛開發例子,個人認為 Saleor 的開發模式還是很不錯的。如果大家有需要,可以採用這個專案構建一個屬於自己的商城。

很多小夥伴在學習python的時候總會遇到一些問題和瓶頸,沒有方向感,不知道該從哪裡入手去提升,對此我整理了一些資料,希望能夠去幫助到小夥伴們,可以關注up主,並在後臺私信小編:“資料”即可領取。

相關文章