教你部署開源的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 非常方便,你只需要克隆儲存庫並構建映象然後執行服務即可:
如果你無法成功克隆 Salor 原始碼倉庫,請在Python實用寶典公眾號回覆:
Saleor
下載全部原始碼。
Saleor 使用共享資料夾來啟用
實時程式碼重新載入
。如果你使用的是
Windows
或
MacOS
,則需要:
1。將克隆的 saleor-platform 目錄放置到 Docker 的共享目錄配置 (
Settings
->
Shared Drives
or
Preferences
->
Resources
->
File sharing
)。
2。確保在 Docker 首選項中你有至少 5 GB 的專用記憶體(
設定
->
高階
或
首選項
->
資源
->
高階
)
執行資料庫migrations及打包前端資源:
(可選)使用示例資料填充資料庫:
最後,為自己建立一個管理員帳戶:
執行服務:
使用以下命令執行Saleor:
很多小夥伴在學習python的時候總會遇到一些問題和瓶頸,沒有方向感,不知道該從哪裡入手去提升,對此我整理了一些資料,希望能夠去幫助到小夥伴們,可以關注up主,並在後臺私信小編:“資料”即可領取。
2.架構介紹
如果你要基於 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 訂閱事件。
下面我們介紹如何基於外掛進行擴充套件開發。
如上圖所示,Saleor Core 提供了一種回撥通知事件給外掛,外掛基於此事件進行相關操作,並與資料庫進行互動。
開發外掛,
你必須繼承 BasePlugin 基類,然後重寫部分方法,比如下面這個例子重寫了
postprocess_order_creation
方法,增加了訂單建立時的一些操作:
載入外掛,
需要在 setup。py 進行配置來自動發現已安裝的外掛。要使外掛可被發現,你需要設定
entry_points
的
saleor_plugins
欄位, 並使用這個語法定義外掛:
package_name = package_name.path.to:PluginClass
。
示例如下:
如果你的外掛是 Django 應用程式,包名(等號前的部分)將被新增到 Django 的
INSTALLED_APPS
中,以便你可以利用 Django 的功能,例如 ORM 整合和資料庫遷移。
注意到我們前面訂單建立時的操作使用了 。delay 的語法,這是 Celery 的非同步任務。因為有些外掛的操作就應該非同步完成,Saleor 使用 Celery 並將發現 tasks。py 在外掛目錄中宣告的所有非同步任務:
上面這個
api_post_request
函式就是前面外掛用到的非同步任務,在外掛呼叫delay方法後,這個任務將被塞到佇列中非同步執行。
好了,上面就是一個簡單的外掛開發例子,個人認為 Saleor 的開發模式還是很不錯的。如果大家有需要,可以採用這個專案構建一個屬於自己的商城。
很多小夥伴在學習python的時候總會遇到一些問題和瓶頸,沒有方向感,不知道該從哪裡入手去提升,對此我整理了一些資料,希望能夠去幫助到小夥伴們,可以關注up主,並在後臺私信小編:“資料”即可領取。
相關文章
- 2021-09-26“白嫖玩家始終是遊戲蛀蟲,擠佔伺服器資源”這種觀點是否正確?
- 2021-09-09厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定
- 2021-04-21迷你世界外掛新科技怎麼使用?玩轉外掛新科技秒變大神
- 2021-04-16《使命召喚手遊》12月即將上線,但質量口碑急轉直下
- 2021-04-16十四年程式設計經驗老鳥總結,全網力薦的Python程式設計教程,入門到實戰