在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何部署開源Python超漂亮電子商城

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 16:49 ? 次閱讀

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 實用寶典
# 克隆存儲庫
git clone https://github.com/mirumee/saleor-platform.git --recursive --jobs 3
cd saleor-platform
# 構建Docker鏡像
docker-compose build

如果你無法成功克隆 Salor 源代碼倉庫,請在Python實用寶典公眾號回復:**Saleor **下載全部源代碼。

Saleor 使用共享文件夾來啟用 實時代碼重新加載 。如果你使用的是WindowsMacOS ,則需要:

1.將克隆的 saleor-platform 目錄放置到 Docker 的共享目錄配置 (Settings -> Shared Drives or Preferences -> Resources -> File sharing )。

2.確保在 Docker 首選項中你有至少 5 GB 的專用內存(設置 -> 高級 或 *首選項 * ->資源 -> 高級

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

docker-compose run --rm api python3 manage.py migrate
docker-compose run --rm api python3 manage.py collectstatic --noinput

(可選)使用示例數據填充數據庫:

docker-compose run --rm api python3 manage.py populatedb

最后,為自己創建一個管理員帳戶:

docker-compose run --rm api python3 manage.py createsuperuser

**
運行服務:**

使用以下命令運行Saleor:

docker-compose 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 **方法,增加了訂單創建時的一些操作:

# Python實用寶典
# custom/plugin.py

from django.conf import settings
from urllib.parse import urljoin

from ..base_plugin import BasePlugin
from .tasks import api_post_request_task


class CustomPlugin(BasePlugin):
    def postprocess_order_creation(self, order: "Order", previous_value: Any):
        # 訂單創建時的操作
        data = ...

        transaction_url = urljoin(settings.CUSTOM_API_URL, "transactions/createoradjust")
        api_post_request_task.delay(transaction_url, data)

**加載插件, 需要在 setup.py 進行配置來自動發現已安裝的插件。要使插件可被發現,你需要設置entry_pointssaleor_plugins **字段, 并使用這個語法定義插件: ** package_name = package_name.path.to:PluginClass ** .

示例如下:

# setup.py
from setuptools import setup

setup(
    ...,
    entry_points={
        "saleor.plugins": [
            "my_plugin = my_plugin.plugin:MyPlugin"
        ]
    }
)

如果你的插件是 Django 應用程序,包名(等號前的部分)將被添加到 Django 的**INSTALLED_APPS **中,以便你可以利用 Django 的功能,例如 ORM 集成和數據庫遷移。

注意到我們前面訂單創建時的操作使用了 .delay 的語法,這是 Celery 的異步任務。因為有些插件的操作就應該異步完成,Saleor 使用 Celery 并將發現 tasks.py 在插件目錄中聲明的所有異步任務:

# custom_plugin/tasks.py

import json
from celery import shared_task
from typing import Any, Dict

import requests
from requests.auth import HTTPBasicAuth
from django.conf import settings


@shared_task
def api_post_request(
    url: str,
    data: Dict[str, Any],
):
    try:
        username = "username"
        password = "password"
        auth = HTTPBasicAuth(username, password)
        requests.post(url, auth=auth, data=json.dumps(data), timeout=settings.TIMEOUT)
    except requests.exceptions.RequestException:
        return

上面這個**api_post_request **函數就是前面插件用到的異步任務,在插件調用delay方法后,這個任務將被塞到隊列中異步執行。

好了,上面就是一個簡單的插件開發例子,個人認為 Saleor 的開發模式還是很不錯的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4320

    瀏覽量

    85912
  • 開源
    +關注

    關注

    3

    文章

    3363

    瀏覽量

    42544
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84775
  • Django
    +關注

    關注

    0

    文章

    44

    瀏覽量

    10396
  • Docker
    +關注

    關注

    0

    文章

    472

    瀏覽量

    11865
收藏 人收藏

    評論

    相關推薦

    [原創]低價出售筆記本電腦

    :索尼.微軟.任天堂.神游科技我們的經營理念是開創一種全新的“網絡+實體”、“商務+資訊”的商業模式我們的宗旨是“有你就有狼港電子商城”:你可以找到我們的實體,也可以找到我們的網絡;你可以到我們商城
    發表于 03-20 15:20

    足不出戶,電子元器件采購一站式服務

    本帖最后由 eehome 于 2013-1-5 10:07 編輯 足不出戶,實現電子元器件采購咨詢一站式服務!就在 天天電子商城www.365ele.com 。如果您想討論技術問題,交流工程設計心得,就在巴布工程師論壇www.365ele.com/bbs
    發表于 06-01 22:21

    2012淘寶1元電子商城

    2012淘寶1元電子商城http://item.taobao.com/item.htm?id=***http://item.taobao.com/item.htm?id=18476888251
    發表于 07-04 21:46

    100%電子產品商城

    100%正品電子產品商城(斯興商城),歡迎各位高手逛逛和
    發表于 08-29 22:55

    如果你正在用一款包含有ERP、電子商城、找貨等應用的服務平臺,里面有一些什么樣的功能會讓你有興趣使用?

    如果現在有一款包含有ERP、電子商城、找貨等應用的服務平臺,里面有一些什么樣的功能會讓你有興趣使用?商城是為商家定制的,前期建設和后期維護都不需要商家操心。
    發表于 05-25 10:30

    有沒有壇友用過TI公司的DRV8301或8302驅動芯片

    都是在哪購買啊,淘寶上的比電子商城的要便宜,但是不知道靠譜不靠譜是不是正品啊
    發表于 08-08 21:37

    唯樣商城——國內領先的電子元器件目錄授權分銷商

    初來乍到,先做個自我介紹。唯樣是國內領先的電子元器件目錄授權分銷商,依托在線交易服務平臺www.oneyac.com,實現“小批量、現貨、樣品”銷售。我們的優勢:1. 與300+ 知名品牌合作
    發表于 02-18 21:54

    Python在web應用實現部署的協議與實現協議的工具解析

    php的正式環境部署非常簡單,改幾個文件就OK,用FastCgi方式也是分分鐘的事情。相比起來,Python在web應用上的部署就繁雜的多,主要是工具繁多,主流服務器支持不足,在了解Pytho
    的頭像 發表于 02-09 09:26 ?5071次閱讀

    精選10個Python開源項目

    過去一個月里,我們對近 250 個 Python 開源項目進行了排名,并挑選出熱度前 10 的項目。
    的頭像 發表于 11-12 09:47 ?6335次閱讀

    簡單:用Python讓Excel飛起來

    簡單:用Python讓Excel飛起來
    發表于 05-25 10:46 ?56次下載

    傳感器距離標志開源分享

    電子發燒友網站提供《傳感器距離標志開源分享.zip》資料免費下載
    發表于 11-02 15:16 ?0次下載
    <b class='flag-5'>超</b>傳感器距離標志<b class='flag-5'>開源</b>分享

    Python控制的機械臂開源分享

    電子發燒友網站提供《Python控制的機械臂開源分享.zip》資料免費下載
    發表于 02-03 10:06 ?3次下載
    <b class='flag-5'>Python</b>控制的機械臂<b class='flag-5'>開源</b>分享

    網絡工程師學Python-開源自動化部署工具Fabric

    Python Fabric是一個基于Python開源自動化部署工具,可以簡化管理遠程服務器的過程。
    的頭像 發表于 04-28 09:54 ?760次閱讀

    關于兩個Python開源識別工具的效果

    回復希望出一篇 OCR 相關的文章,今天嘗試了一下 cnocr 和 tesseract 兩個 Python 開源識別工具的效果,給大家分別講講兩個工具的使用方法和對比效果。 1.準備 開始之前,你要確保
    的頭像 發表于 10-17 11:36 ?744次閱讀
    關于兩個<b class='flag-5'>Python</b><b class='flag-5'>開源</b>識別工具的效果

    Python 如何一鍵轉化代碼為流程圖

    Graphviz是一個可以對圖進行自動布局的繪圖工具,由貝爾實驗室開源。我們在上次 Python 快速繪制畫出漂亮的系統架構圖 提到的diagrams,其內部的編排邏輯就用到了這個開源
    的頭像 發表于 11-01 10:39 ?2226次閱讀
    <b class='flag-5'>Python</b> 如何一鍵轉化代碼為流程圖
    主站蜘蛛池模板: 狠狠色噜噜综合社区| 亚洲97| 久久成人网18网站| 正在播放国产乱子伦视频| 色播四房间| 国内黄色精品| 91在线色| 午夜神马福利免费官方| 天天操天天透| 哺乳期xxxx视频| 在线视频久久| 国产资源在线观看| 国产视频每日更新| 欧美大片一区| 精品一级毛片| www在线视频在线播放| 亚洲精品久久片久久| www.色亚洲| 天天伊人| 波多野结衣一级特黄毛片| 免费观看成年欧美1314www色| 亚洲免费黄色网| 欧美屁屁影院| 啪啪免费看视频| 2021天天干| 少妇被按摩| 天天做人人爱夜夜爽2020毛片| 日本国产在线观看| 欧美一级免费观看| 国产区一区二区三区| 天天爽夜夜爽一区二区三区| 国产理论片在线观看| 亚洲国产精品自在现线让你爽| 91大神免费视频| 国产黄色网页| 一区二区三区亚洲| 亚洲三级视频| 亚洲国产成人久久一区久久| 一区二区三区四区免费视频| 狠狠色噜噜狠狠狠狠黑人| 性欧美暴力猛交69hd|