實(shí)戰(zhàn):從Docker部署到博客后臺(tái)搭建)
各位開發(fā)者朋友大家好。此前我們?cè)谙盗薪坛讨谐醪秸J(rèn)識(shí)了 NocoBase 這款開源零代碼平臺(tái)很多朋友留言問到底怎么把它跑起來、怎么用它搭一個(gè)真實(shí)可用的業(yè)務(wù)系統(tǒng)。本期教程就圍繞“安裝”和“使用”兩個(gè)核心環(huán)節(jié)以搭建一個(gè)簡(jiǎn)單博客后臺(tái)為案例完整演示從下載部署到數(shù)據(jù)建模再到頁面配置和權(quán)限管理的全過程。無論你是第一次接觸零代碼還是已經(jīng)在對(duì)比各類低代碼平臺(tái)這篇文章都能給你一條清晰、可落地的實(shí)操路徑。1. 背景與核心概念1.1 什么是 NocoBaseNocoBase 是一個(gè)開源免費(fèi)的無代碼 / 低代碼開發(fā)平臺(tái)它的核心特點(diǎn)是“數(shù)據(jù)模型驅(qū)動(dòng)”。簡(jiǎn)單來說你可以先在界面上設(shè)計(jì)好數(shù)據(jù)庫表結(jié)構(gòu)再通過拖拽式配置把頁面、表單、列表、圖表等模塊組合起來從而搭建出一套完整的管理系統(tǒng)。它不像傳統(tǒng)開發(fā)那樣需要寫大量前后端代碼也不像很多表單類零代碼平臺(tái)那樣只能做簡(jiǎn)單的數(shù)據(jù)收集而是直接面向業(yè)務(wù)系統(tǒng)開發(fā)和私有化部署場(chǎng)景。和市面上的表單工具、低代碼平臺(tái)相比NocoBase 有幾個(gè)很明顯的區(qū)別數(shù)據(jù)模型優(yōu)先。你在界面上創(chuàng)建的每個(gè)數(shù)據(jù)表都會(huì)真實(shí)寫入底層數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)和關(guān)系可以精確控制。所見即所得。頁面配置時(shí)可以直接預(yù)覽效果區(qū)塊、字段、操作按鈕都可以隨時(shí)調(diào)整。插件化架構(gòu)。官方提供大量插件也支持開發(fā)者編寫自己的擴(kuò)展包靈活度比傳統(tǒng)零代碼平臺(tái)高很多。開源可私有化部署。代碼托管在 GitHub 上數(shù)據(jù)完全由自己掌控適合企業(yè)內(nèi)部系統(tǒng)、外包項(xiàng)目、個(gè)人作品集等場(chǎng)景。1.2 為什么需要零代碼平臺(tái)在介紹安裝之前我想先聊聊為什么需要 NocoBase 這類工具。實(shí)際開發(fā)中很多管理系統(tǒng)存在大量重復(fù)性工作用戶管理、文章發(fā)布、訂單記錄、設(shè)備臺(tái)賬、項(xiàng)目進(jìn)度跟蹤……這些功能結(jié)構(gòu)相似但每個(gè)企業(yè)又有自己的字段和流程。用傳統(tǒng)方式做需要建表、寫接口、寫頁面、做權(quán)限一套下來至少一兩周用 NocoBase可能半天就能完成一個(gè)基礎(chǔ)版本。零代碼平臺(tái)的核心價(jià)值在于縮短交付周期。配置化開發(fā)遠(yuǎn)快于編碼開發(fā)。降低維護(hù)成本。字段和頁面調(diào)整不需要發(fā)版。業(yè)務(wù)人員可參與。業(yè)務(wù)人員也能直接調(diào)整表單和流程。私有化部署保證數(shù)據(jù)安全。這對(duì)企業(yè)內(nèi)部系統(tǒng)尤其重要。1.3 NocoBase 的典型應(yīng)用場(chǎng)景從社區(qū)和官方案例來看NocoBase 常用于以下場(chǎng)景企業(yè)內(nèi)部管理系統(tǒng)OA、CRM、進(jìn)銷存、項(xiàng)目管理、工單系統(tǒng)。數(shù)據(jù)收集與報(bào)表平臺(tái)巡檢記錄、問卷收集、運(yùn)營數(shù)據(jù)匯總。內(nèi)容管理系統(tǒng)博客后臺(tái)、新聞發(fā)布、幫助中心。低代碼定制化平臺(tái)在 NocoBase 基礎(chǔ)上二次開發(fā)交付給特定客戶。我們今天選擇博客案例是因?yàn)樗Y(jié)構(gòu)清晰、字段類型豐富能覆蓋數(shù)據(jù)表、關(guān)系字段、頁面區(qū)塊、權(quán)限配置等核心功能非常適合用來演示。2. 環(huán)境準(zhǔn)備與版本說明2.1 推薦環(huán)境NocoBase 支持 Docker 部署和直接源碼運(yùn)行兩種方式。對(duì)于大多數(shù)用戶我強(qiáng)烈推薦使用 Docker Compose 方式因?yàn)樗蕾嚿?、啟?dòng)快、易于卸載和升級(jí)。本文示例的推薦環(huán)境如下軟件版本建議說明操作系統(tǒng)Windows 10/11、Ubuntu 20.04、macOS本文以 Windows 和 Linux 為主DockerDocker Engine 20.10需要支持 Docker Compose v2Docker Composev2 版本新版 Docker Desktop 自帶數(shù)據(jù)庫PostgreSQL 14 或 SQLite生產(chǎn)環(huán)境建議 PostgreSQL內(nèi)存4G 以上NocoBase 運(yùn)行需要一定內(nèi)存瀏覽器Chrome / Edge 最新版后臺(tái)管理界面注意版本需要根據(jù)你的項(xiàng)目實(shí)際情況調(diào)整本文示例以常見環(huán)境為例重點(diǎn)演示配置思路。如果你使用較低版本 Docker 或操作系統(tǒng)比較老部分命令可能需要微調(diào)。2.2 NocoBase 版本說明NocoBase 目前迭代速度比較快1.x 版本已經(jīng)比較成熟2.x 版本在 UI、性能、插件體系上做了大量?jī)?yōu)化。本文寫作時(shí)以 NocoBase 2.x 為主但絕大多數(shù)操作步驟在 1.x 上也通用。你可以通過以下命令查看官方可用版本docker search nocobase也可以直接訪問 Docker Hub 或 GitHub Releases 頁面查看最新版。生產(chǎn)環(huán)境建議鎖定版本號(hào)避免自動(dòng)升級(jí)帶來的兼容性問題。2.3 端口規(guī)劃NocoBase 默認(rèn)使用80端口對(duì)外提供服務(wù)數(shù)據(jù)庫使用5432PostgreSQL。如果你的服務(wù)器 80 端口已被其他服務(wù)占用可以修改映射端口。本文示例使用13080作為外部訪問端口避免沖突。3. 安裝部署 NocoBase 23.1 方式一Docker Compose 一鍵部署推薦這是最簡(jiǎn)單的方式。先創(chuàng)建項(xiàng)目目錄和配置文件。mkdir nocobase-demo cd nocobase-demo在目錄下創(chuàng)建docker-compose.yml文件內(nèi)容如下version: 3 services: nocobase: image: nocobase/nocobase:latest container_name: nocobase-app ports: - 13080:80 environment: - APP_KEYyour-secret-key-change-me - DB_DIALECTpostgres - DB_HOSTpostgres - DB_PORT5432 - DB_DATABASEnocobase - DB_USERnocobase - DB_PASSWORDnocobase - TZAsia/Shanghai volumes: - ./storage:/app/nocobase/storage restart: always depends_on: - postgres postgres: image: postgres:14 container_name: nocobase-postgres environment: - POSTGRES_DBnocobase - POSTGRES_USERnocobase - POSTGRES_PASSWORDnocobase volumes: - ./postgres-data:/var/lib/postgresql/data restart: always配置解釋ports: 將宿主機(jī)13080映射到容器內(nèi)80端口訪問地址是http://localhost:13080。APP_KEY: NocoBase 的應(yīng)用密鑰用于加密和安全相關(guān)邏輯生產(chǎn)環(huán)境務(wù)必改為隨機(jī)長(zhǎng)字符串。DB_*: 數(shù)據(jù)庫連接配置這里連接的是同文件里定義的 PostgreSQL 容器。volumes: 將容器內(nèi)存儲(chǔ)目錄掛載到宿主機(jī)保證重啟后數(shù)據(jù)不丟失。depends_on: 確保 PostgreSQL 先啟動(dòng)。然后執(zhí)行啟動(dòng)命令docker-compose up -d等待鏡像拉取和容器啟動(dòng)首次拉取可能需要幾分鐘。啟動(dòng)完成后查看容器狀態(tài)docker-compose ps當(dāng)狀態(tài)顯示Up時(shí)說明啟動(dòng)成功。3.2 方式二使用 create-nocobase-app 安裝如果你不想使用 Docker也可以使用 Node.js 直接安裝。這種方式適合開發(fā)調(diào)試和二次開發(fā)。先確保本機(jī)已安裝 Node.js 18 或更高版本然后執(zhí)行yarn create nocobase-app my-nocobase-app cd my-nocobase-app yarn install yarn nocobase install yarn start這種方式對(duì) Node 版本有一定要求如果遇到依賴安裝失敗需要檢查 Node 和 yarn 版本。對(duì)于剛接觸 NocoBase 的朋友還是建議優(yōu)先使用 Docker 方式。3.3 初始化 NocoBase無論使用哪種方式安裝首次訪問時(shí)需要?jiǎng)?chuàng)建管理員賬號(hào)。打開瀏覽器訪問http://localhost:13080會(huì)看到歡迎界面。點(diǎn)擊“創(chuàng)建管理員賬號(hào)”填寫管理員郵箱、密碼等信息。這里的密碼建議設(shè)置復(fù)雜一些因?yàn)樗钦麄€(gè)系統(tǒng)的超級(jí)管理員賬號(hào)。創(chuàng)建完成后系統(tǒng)會(huì)進(jìn)入 NocoBase 主界面。這里有一個(gè)常見疑問很多朋友找“默認(rèn)用戶名密碼”其實(shí) NocoBase 沒有默認(rèn)賬號(hào)首次部署時(shí)必須自己創(chuàng)建管理員賬號(hào)。如果你在文檔或視頻里看到默認(rèn)賬號(hào)那通常是演示環(huán)境不是正式安裝。4. 博客系統(tǒng)實(shí)戰(zhàn)案例4.1 需求分析與功能拆分我們用一個(gè)博客后臺(tái)作為案例目標(biāo)功能如下文章管理支持發(fā)布、編輯、刪除文章。分類管理文章可以屬于一個(gè)分類。標(biāo)簽管理一篇文章可以有多個(gè)標(biāo)簽。評(píng)論管理讀者可以發(fā)表評(píng)論管理員可以審核或刪除。站點(diǎn)配置維護(hù)博客名稱、簡(jiǎn)介等信息。將上述功能拆成數(shù)據(jù)表一共需要 5 張表文章表、分類表、標(biāo)簽表、評(píng)論表、配置表。其中文章和分類是一對(duì)多關(guān)系文章和標(biāo)簽是多對(duì)多關(guān)系文章和評(píng)論是一對(duì)多關(guān)系。4.2 創(chuàng)建數(shù)據(jù)表登錄 NocoBase 控制臺(tái)后點(diǎn)擊左上角的菜單按鈕進(jìn)入“數(shù)據(jù)表管理”頁面。點(diǎn)擊“創(chuàng)建數(shù)據(jù)表”選擇“創(chuàng)建新表”開始創(chuàng)建。4.2.1 創(chuàng)建文章表表名建議填寫posts顯示名稱填寫“文章”。然后添加字段字段名稱字段類型說明title單行文本文章標(biāo)題content多行文本文章正文status單選草稿/已發(fā)布published_at日期發(fā)布時(shí)間cover附件封面圖view_count整數(shù)瀏覽量category關(guān)聯(lián)關(guān)聯(lián)分類表tags關(guān)聯(lián)多對(duì)多關(guān)聯(lián)標(biāo)簽表創(chuàng)建字段時(shí)需要注意NocoBase 會(huì)自動(dòng)為每張表生成id、created_at、updated_at等內(nèi)置字段不需要手動(dòng)添加。關(guān)系字段需要在關(guān)聯(lián)表創(chuàng)建后才能建立所以建議先創(chuàng)建所有數(shù)據(jù)表再補(bǔ)充關(guān)系字段。4.2.2 創(chuàng)建分類表表名填寫categories顯示名稱填寫“分類”。字段包括字段名稱字段類型說明name單行文本分類名稱slug單行文本分類別名用于 URLdescription多行文本分類描述4.2.3 創(chuàng)建標(biāo)簽表表名填寫tags顯示名稱填寫“標(biāo)簽”。字段包括字段名稱字段類型說明name單行文本標(biāo)簽名稱slug單行文本標(biāo)簽別名4.2.4 創(chuàng)建評(píng)論表表名填寫comments顯示名稱填寫“評(píng)論”。字段包括字段名稱字段類型說明content多行文本評(píng)論內(nèi)容author單行文本評(píng)論者昵稱email郵箱評(píng)論者郵箱status單選待審核/已通過/已拒絕post關(guān)聯(lián)關(guān)聯(lián)文章表4.2.5 建立關(guān)系字段現(xiàn)在回到文章表為category字段設(shè)置關(guān)聯(lián)目標(biāo)為“分類表”關(guān)系類型選擇“多對(duì)一”。為tags字段設(shè)置關(guān)聯(lián)目標(biāo)為“標(biāo)簽表”關(guān)系類型選擇“多對(duì)多”。在評(píng)論表中為post字段設(shè)置關(guān)聯(lián)目標(biāo)為“文章表”關(guān)系類型選擇“多對(duì)一”。4.3 配置頁面與菜單數(shù)據(jù)表創(chuàng)建完成后接下來配置后臺(tái)管理頁面。NocoBase 的界面采用“菜單 區(qū)塊”的方式組合頁面。點(diǎn)擊界面左上角菜單進(jìn)入菜單配置模式然后添加菜單項(xiàng)。4.3.1 創(chuàng)建文章管理頁面點(diǎn)擊“添加菜單項(xiàng)”選擇“頁面類型”為“數(shù)據(jù)表頁面”。在頁面中點(diǎn)擊“添加區(qū)塊”選擇“數(shù)據(jù)表區(qū)塊”中的“表格”類型。數(shù)據(jù)源選擇“文章表”。拖動(dòng)字段到表格中顯示例如標(biāo)題、分類、狀態(tài)、發(fā)布時(shí)間。點(diǎn)擊“篩選器”設(shè)置常用篩選條件例如按狀態(tài)篩選。點(diǎn)擊“操作”添加新建、編輯、刪除、導(dǎo)出按鈕。這樣一個(gè)具備增刪改查功能的文章管理頁面就完成了。整個(gè)過程完全可視化不需要寫一行代碼。4.3.2 創(chuàng)建評(píng)論管理頁面同樣的方式創(chuàng)建一個(gè)評(píng)論管理頁面。表格中顯示評(píng)論內(nèi)容、作者、郵箱、所屬文章、狀態(tài)并添加狀態(tài)批量審核操作。4.3.3 配置首頁儀表盤NocoBase 支持儀表盤頁面??梢孕陆ㄒ粋€(gè)儀表盤頁面添加“統(tǒng)計(jì)數(shù)字”區(qū)塊統(tǒng)計(jì)文章總數(shù)、已發(fā)布數(shù)、評(píng)論總數(shù)再添加“圖表”區(qū)塊展示最近一個(gè)月文章發(fā)布趨勢(shì)。這些圖表都是基于數(shù)據(jù)自動(dòng)生成的不需要寫 SQL。4.4 配置角色權(quán)限NocoBase 內(nèi)置了基于角色的權(quán)限控制ACL。進(jìn)入“設(shè)置” - “角色權(quán)限”可以看到系統(tǒng)內(nèi)置了管理員角色。我們可以新建角色例如“編輯”和“訪客”。4.4.1 編輯角色新建“編輯”角色后配置該角色對(duì)每個(gè)數(shù)據(jù)表的操作權(quán)限。例如文章表允許查看、創(chuàng)建、編輯不允許刪除。分類表允許查看、創(chuàng)建、編輯。標(biāo)簽表允許查看。評(píng)論表允許查看、編輯狀態(tài)不允許刪除。配置完成后可以為編輯角色添加用戶。這樣編輯人員登錄后只能操作被授權(quán)的數(shù)據(jù)無法越權(quán)。4.4.2 訪客角色如果博客需要對(duì)外開放前臺(tái)頁面可以為“訪客”角色配置公開數(shù)據(jù)表的讀取權(quán)限。例如允許訪客查看已發(fā)布的文章和已通過的評(píng)論。注意訪客角色直接對(duì)應(yīng)未登錄的匿名用戶配置時(shí)只開放必要字段即可避免敏感數(shù)據(jù)泄露。4.5 運(yùn)行與驗(yàn)證完成以上配置后刷新瀏覽器可以看到一個(gè)完整的博客后臺(tái)在“文章管理”頁面新建一篇文章選擇分類、標(biāo)簽填寫標(biāo)題和正文發(fā)布。在“評(píng)論管理”頁面查看評(píng)論并按狀態(tài)審核。切到編輯角色賬號(hào)驗(yàn)證權(quán)限是否生效。切到訪客視角驗(yàn)證公開頁面顯示是否正常。整個(gè)過程都可以在瀏覽器中完成非常直觀。你會(huì)發(fā)現(xiàn)搭建一個(gè)能實(shí)際使用的管理系統(tǒng)真的不需要寫代碼。5. 常見問題與排查思路5.1 常見問題速查表問題現(xiàn)象常見原因解決思路啟動(dòng)后訪問頁面空白容器未完全啟動(dòng)或資源不足執(zhí)行docker-compose logs查看日志等待啟動(dòng)完成數(shù)據(jù)庫連接失敗數(shù)據(jù)庫密碼或庫名配置不一致檢查docker-compose.yml中DB_DATABASE、DB_USER、DB_PASSWORD與 PostgreSQL 容器是否一致修改數(shù)據(jù)后頁面不刷新瀏覽器緩存強(qiáng)制刷新瀏覽器緩存或清除 Cookie 后重試創(chuàng)建數(shù)據(jù)表保存失敗字段名包含特殊字符字段名只允許字母、數(shù)字和下劃線上傳附件失敗存儲(chǔ)目錄權(quán)限不足檢查宿主機(jī)./storage目錄權(quán)限忘記管理員密碼密碼記憶丟失在容器中執(zhí)行命令重置詳情見下文頁面接口 404路由未生成或插件未啟用檢查對(duì)應(yīng)頁面是否發(fā)布插件是否啟用Docker 鏡像拉取慢網(wǎng)絡(luò)原因配置 Docker 鏡像加速器5.2 忘記管理員密碼怎么辦如果忘記管理員密碼可以通過命令行重置。進(jìn)入容器docker exec -it nocobase-app bash然后執(zhí)行yarn nocobase reset-admin-password按提示輸入新的管理員郵箱和密碼即可。注意這個(gè)命令會(huì)重置管理員密碼不會(huì)刪除數(shù)據(jù)。5.3 版本升級(jí)注意事項(xiàng)NocoBase 版本升級(jí)前請(qǐng)確保備份數(shù)據(jù)。備份方式有兩種數(shù)據(jù)庫備份。如果使用 PostgreSQL執(zhí)行docker exec nocobase-postgres pg_dump -U nocobase nocobase backup.sql存儲(chǔ)目錄備份。將宿主機(jī)./storage目錄整體拷貝一份。升級(jí)時(shí)修改docker-compose.yml中的鏡像版本號(hào)然后執(zhí)行docker-compose up -d升級(jí)后進(jìn)入系統(tǒng)檢查數(shù)據(jù)表結(jié)構(gòu)是否正常功能是否完整。大版本升級(jí)前建議先在測(cè)試環(huán)境驗(yàn)證。6. 最佳實(shí)踐與工程建議6.1 數(shù)據(jù)建模建議NocoBase 雖然零代碼但數(shù)據(jù)建模的思維仍然非常重要。建議在動(dòng)手配置前先梳理業(yè)務(wù)對(duì)象、對(duì)象之間的關(guān)系、每個(gè)對(duì)象的字段列表。關(guān)系字段盡量在設(shè)計(jì)初期就確定好后期再改關(guān)系類型會(huì)比較麻煩。字段命名建議使用有意義的英文名稱例如title、published_at不要用a、b這類無意義命名。雖然顯示名稱可以設(shè)置為中文但底層字段名一旦大量使用后再修改會(huì)影響關(guān)聯(lián)關(guān)系和頁面配置。6.2 權(quán)限最小化原則配置角色權(quán)限時(shí)遵循“最小權(quán)限”原則。每個(gè)角色只分配完成工作所需的最少權(quán)限。例如“編輯”角色不需要?jiǎng)h除文章就不要給刪除權(quán)限“訪客”角色不能查看草稿文章只能查看已發(fā)布內(nèi)容。NocoBase 的 ACL 支持字段級(jí)權(quán)限控制可以對(duì)敏感字段單獨(dú)關(guān)閉權(quán)限。6.3 定時(shí)備份與容災(zāi)任何管理系統(tǒng)數(shù)據(jù)備份都是最重要的工作。建議至少做到每天自動(dòng)備份數(shù)據(jù)庫。每周備份完整存儲(chǔ)目錄。備份文件存放到不同服務(wù)器或?qū)ο蟠鎯?chǔ)。對(duì)于關(guān)鍵數(shù)據(jù)可以設(shè)置 PostgreSQL 的自動(dòng)備份腳本。另外生產(chǎn)環(huán)境不要把APP_KEY暴露在公網(wǎng)建議從環(huán)境變量或密鑰管理服務(wù)中讀取。6.4 插件使用與二次開發(fā)邊界NocoBase 的插件生態(tài)非常豐富能覆蓋大部分通用需求。但遇到特殊業(yè)務(wù)邏輯時(shí)插件不一定能滿足這時(shí)就需要評(píng)估是改變業(yè)務(wù)需求還是進(jìn)行二次開發(fā)。NocoBase 提供了擴(kuò)展 API可以編寫自定義插件。二次開發(fā)建議在獨(dú)立分支進(jìn)行并使用版本管理工具避免影響主系統(tǒng)。6.5 性能優(yōu)化建議對(duì)于中小型系統(tǒng)NocoBase 默認(rèn)配置完全夠用。如果數(shù)據(jù)量較大可以考慮給高頻查詢字段建立數(shù)據(jù)庫索引。關(guān)閉不用的區(qū)塊和插件。使用 CDN 加速靜態(tài)資源。將數(shù)據(jù)庫和 NocoBase 部署在不同服務(wù)器上。在對(duì)應(yīng)字段的“高級(jí)配置”中可以設(shè)置索引、默認(rèn)值、驗(yàn)證規(guī)則等屬性。善用這些功能可以提高數(shù)據(jù)質(zhì)量和查詢效率。6.6 日志與監(jiān)控在啟動(dòng)時(shí)指定TZ環(huán)境變量可以保證日志時(shí)間正確。NocoBase 會(huì)將應(yīng)用日志寫入存儲(chǔ)目錄定期檢查日志能提前發(fā)現(xiàn)問題。對(duì)于正式生產(chǎn)環(huán)境建議將 NocoBase 接入統(tǒng)一的日志采集和監(jiān)控告警系統(tǒng)例如 ELK、Prometheus 等。7. 總結(jié)與下一步學(xué)習(xí)方向通過本文我們完成了以下內(nèi)容理解了 NocoBase 的核心概念和零代碼平臺(tái)的價(jià)值。使用 Docker Compose 部署了 NocoBase 2。創(chuàng)建了博客系統(tǒng)的數(shù)據(jù)表包括文章、分類、標(biāo)簽、評(píng)論等。配置了數(shù)據(jù)管理頁面和儀表盤。實(shí)現(xiàn)了基于角色的權(quán)限控制。排查了常見問題并整理了工程化建議。接下來如果你想繼續(xù)深入學(xué)習(xí) NocoBase可以從以下幾個(gè)方面入手工作流自動(dòng)化。NocoBase 支持配置審批流、通知流等自動(dòng)化流程適合搭建工單系統(tǒng)。數(shù)據(jù)可視化。深化圖表和儀表盤配置掌握聚合統(tǒng)計(jì)和聯(lián)動(dòng)篩選。自定義插件開發(fā)。學(xué)習(xí) NocoBase 的擴(kuò)展機(jī)制編寫業(yè)務(wù)專用插件。API 集成。掌握 NocoBase 的 REST API與其他系統(tǒng)打通數(shù)據(jù)。NocoBase 是一款潛力很大的開源零代碼平臺(tái)特別適合熱愛技術(shù)、希望掌控?cái)?shù)據(jù)的開發(fā)者。從今天開始動(dòng)手搭一個(gè)自己的系統(tǒng)吧過程中遇到問題歡迎在評(píng)論區(qū)留言討論。如果本文對(duì)你有幫助可以收藏備用也歡迎轉(zhuǎn)發(fā)給需要的朋友。我們下期教程再見。