go語(yǔ)言module go語(yǔ)言適合做什么

GO語(yǔ)言(二十七):管理依賴(lài)項(xiàng)(下)-

當(dāng)您對(duì)外部模塊的存儲(chǔ)庫(kù)進(jìn)行了 fork (例如修復(fù)模塊代碼中的問(wèn)題或添加功能)時(shí),您可以讓 Go 工具將您的 fork 用于模塊的源代碼。這對(duì)于測(cè)試您自己的代碼的更改很有用。

專(zhuān)業(yè)從事成都網(wǎng)站制作、做網(wǎng)站,高端網(wǎng)站制作設(shè)計(jì),微信小程序,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用HTML5+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站開(kāi)發(fā),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專(zhuān)項(xiàng)小組,與您實(shí)時(shí)在線(xiàn)互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。

為此,您可以使用go.mod 文件中的replace指令將外部模塊的原始模塊路徑替換為存儲(chǔ)庫(kù)中 fork 的路徑。這指示 Go 工具在編譯時(shí)使用替換路徑(fork 的位置),例如,同時(shí)允許您保留import 原始模塊路徑中的語(yǔ)句不變。

在以下 go.mod 文件示例中,當(dāng)前模塊需要外部模塊example.com/theirmodule。然后該replace指令將原始模塊路徑替換為example.com/myfork/theirmodule模塊自己的存儲(chǔ)庫(kù)的分支。

設(shè)置require/replace對(duì)時(shí),使用 Go 工具命令確保文件描述的需求保持一致。使用go list命令獲取當(dāng)前模塊正在使用的版本。然后使用go mod edit命令將需要的模塊替換為fork:

注意: 當(dāng)您使用該replace指令時(shí),Go 工具不會(huì)像添加依賴(lài)項(xiàng)中所述對(duì)外部模塊進(jìn)行身份驗(yàn)證。

您可以使用go get命令從其存儲(chǔ)庫(kù)中的特定提交為模塊添加未發(fā)布的代碼。

為此,您使用go get命令,用符號(hào)@指定您想要的代碼 。當(dāng)您使用go get時(shí),該命令將向您的 go.mod 文件添加一個(gè) 需要外部模塊的require指令,使用基于有關(guān)提交的詳細(xì)信息的偽版本號(hào)。

以下示例提供了一些說(shuō)明。這些基于源位于 git 存儲(chǔ)庫(kù)中的模塊。

當(dāng)您的代碼不再使用模塊中的任何包時(shí),您可以停止將該模塊作為依賴(lài)項(xiàng)進(jìn)行跟蹤。

要停止跟蹤所有未使用的模塊,請(qǐng)運(yùn)行g(shù)o mod tidy 命令。此命令還可能添加在模塊中構(gòu)建包所需的缺失依賴(lài)項(xiàng)。

要?jiǎng)h除特定依賴(lài)項(xiàng),請(qǐng)使用go get,指定模塊的模塊路徑并附加 @none,如下例所示:

go get命令還將降級(jí)或刪除依賴(lài)于已刪除模塊的其他依賴(lài)項(xiàng)。

當(dāng)您使用 Go 工具處理模塊時(shí),這些工具默認(rèn)從 proxy.golang.org(一個(gè)公共的 Google 運(yùn)行的模塊鏡像)或直接從模塊的存儲(chǔ)庫(kù)下載模塊。您可以指定 Go 工具應(yīng)該使用另一個(gè)代理服務(wù)器來(lái)下載和驗(yàn)證模塊。

如果您(或您的團(tuán)隊(duì))已經(jīng)設(shè)置或選擇了您想要使用的不同模塊代理服務(wù)器,您可能想要這樣做。例如,有些人設(shè)置了模塊代理服務(wù)器,以便更好地控制依賴(lài)項(xiàng)的使用方式。

要為 Go 工具指定另一個(gè)模塊代理服務(wù)器,請(qǐng)將GOPROXY 環(huán)境變量設(shè)置為一個(gè)或多個(gè)服務(wù)器的 URL。Go 工具將按照您指定的順序嘗試每個(gè) URL。默認(rèn)情況下,GOPROXY首先指定一個(gè)公共的 Google 運(yùn)行模塊代理,然后從模塊的存儲(chǔ)庫(kù)直接下載(在其模塊路徑中指定):

您可以將變量設(shè)置為其他模塊代理服務(wù)器的 URL,用逗號(hào)或管道分隔 URL。

Go 模塊經(jīng)常在公共互聯(lián)網(wǎng)上不可用的版本控制服務(wù)器和模塊代理上開(kāi)發(fā)和分發(fā)。您可以設(shè)置 GOPRIVATE環(huán)境變量。您可以設(shè)置GOPRIVATE環(huán)境變量來(lái)配置go命令以從私有源下載和構(gòu)建模塊。然后 go 命令可以從私有源下載和構(gòu)建模塊。

GOPRIVATE或環(huán)境變量可以設(shè)置為匹配模塊前綴的全局模式列表,這些GONOPROXY前綴是私有的,不應(yīng)從任何代理請(qǐng)求。例如:

「測(cè)試開(kāi)發(fā)全?;?Go」(1) Go語(yǔ)言基本了解

作為一個(gè)測(cè)試,作為一個(gè)測(cè)試開(kāi)發(fā), 全?;?管理 是我們未來(lái)的發(fā)展方向。已經(jīng)掌握了Java、Python、HTML的你,是不是也想了解下最近異常火爆的Go語(yǔ)言呢?來(lái)吧,讓我們一起了解下。

Go 是一個(gè)開(kāi)源的編程語(yǔ)言 ,它能讓構(gòu)造簡(jiǎn)單、可靠且高效的軟件變得容易。

Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開(kāi)發(fā),后來(lái)還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開(kāi)源,在2012年早些時(shí)候發(fā)布了Go 1穩(wěn)定版本。現(xiàn)在Go的開(kāi)發(fā)已經(jīng)是完全開(kāi)放的,并且擁有一個(gè)活躍的社區(qū)。這三個(gè)人都是計(jì)算機(jī)界的大神,有的參與了C語(yǔ)言的編寫(xiě),有的還是數(shù)學(xué)大神,有的還獲得了計(jì)算機(jī)最高榮譽(yù)-圖靈獎(jiǎng)。

接下來(lái)說(shuō)說(shuō) Go語(yǔ)言的特色 :

簡(jiǎn)潔、快速、安全

并行、有趣、開(kāi)源

內(nèi)存管理、數(shù)組安全、編譯迅速

Go語(yǔ)言的用途 :

Go 語(yǔ)言被設(shè)計(jì)成一門(mén)應(yīng)用于搭載 Web 服務(wù)器,存儲(chǔ)集群或類(lèi)似用途的巨型中央服務(wù)器的系統(tǒng)編程語(yǔ)言。

對(duì)于高性能分布式系統(tǒng)領(lǐng)域而言,Go 語(yǔ)言無(wú)疑比大多數(shù)其它語(yǔ)言有著更高的開(kāi)發(fā)效率。它提供了海量并行的支持,這對(duì)于 游戲 服務(wù)端的開(kāi)發(fā)而言是再好不過(guò)了。

Go語(yǔ)言的環(huán)境安裝:

建議直接打開(kāi) 官方地址因?yàn)閴Φ脑虼虿婚_(kāi)

因?yàn)槲矣玫氖莣indows系統(tǒng),這里主要講下Windows系統(tǒng)上使用Go語(yǔ)言來(lái)編程。

Windows 下可以使用 .msi 后綴(在下載列表中可以找到該文件,如go1.17.2.windows-amd64.msi)的安裝包來(lái)安裝。

默認(rèn)情況下 .msi 文件會(huì)安裝在 c:Go 目錄下。你可以將 c:Gobin 目錄添加到 Path 環(huán)境變量中。添加后你需要重啟命令窗口才能生效。個(gè)人建議還是安裝到 Program Files文件夾中。

使用什么開(kāi)發(fā)工具來(lái)對(duì)Go語(yǔ)言進(jìn)行編寫(xiě):

個(gè)人建議用VS code, 也可以用Sublime Text來(lái)編輯。如果你之前看了我講的HTML語(yǔ)言的學(xué)習(xí),肯定已經(jīng)下載了VS code. 那么這時(shí)你需要在VS code中下載Go語(yǔ)言的擴(kuò)展插件。

這里有一個(gè)巨大的坑,就是在下載Go的插件和依賴(lài)包時(shí),會(huì)提示一些包沒(méi)有。主要是因?yàn)橄螺d的依賴(lài)包部分被墻了,只能想別的辦法去下載。

建議參考網(wǎng)頁(yè):

解決vscode中g(shù)olang插件安裝失敗方法

在學(xué)習(xí)go的過(guò)程中,使用的是vscode,但是一直提示安裝相關(guān)插件失敗,然后上網(wǎng)查方法,基本上是叫你建立golang.org目錄什么的,結(jié)果全是錯(cuò)的,而且都是抄襲,很煩。無(wú)意之中看到一位博主分享的方法,他也是飽受上述的垃圾博文困擾,然后找到了解決方法,這里向他致敬,秉著讓更多人看到正確解決方法的心,我寫(xiě)下正確的解決方法,希望對(duì)你有所幫助,也可以點(diǎn)開(kāi)原博主鏈接參考:

Go有一個(gè)全球模塊代理,設(shè)置代理再去安裝golang的插件,就可以安裝成功了。步驟有,首先Windows用戶(hù)打開(kāi)Powershell,一個(gè)藍(lán)色的界面,注意不是cmd!不知道的直接打開(kāi)window下面的搜索,然后輸入powershell,搜索出來(lái)就可以了。

$env:GO111MODULE=“on”

$env:GOPROXY=“”

go env -w GOPROXY=

go env -w GOPRIVATE=*.corp.example.com

然后我們打開(kāi)VsCode界面,下面會(huì)提示安裝插件,我們選擇Install ALL,就會(huì)安裝成功

當(dāng)你在運(yùn)行Go語(yǔ)言程序時(shí),提示所有的插件包都已經(jīng)安裝成功了時(shí),就可以正常使用了,要不然一堆報(bào)錯(cuò)會(huì)讓你非常心煩。

好了,今天先到這里,晚安、下班~

使用Go Module構(gòu)建項(xiàng)目

Golang 配置不是這里要討論的新話(huà)題。但是在Go 1.12發(fā)布之后,我認(rèn)為必須重新定義步驟,因?yàn)轫?xiàng)目設(shè)置變得比以前簡(jiǎn)單明了。

在搜索配置步驟時(shí),除了少數(shù)文章之外,大部分內(nèi)容仍然是分享舊方式,即

通過(guò)本文,我們將看到項(xiàng)目設(shè)置及其發(fā)布如何在Go 1.12版本中進(jìn)行。

在1.11版本中,Go引入了名為Go Modules的內(nèi)置包管理,它正在開(kāi)始進(jìn)行重大改變Go生態(tài)系統(tǒng)。它是GOPATH的替代品,集成了版本控制和軟件包分發(fā)支持。

來(lái)自Go博客,

由于1.12版本的Go模塊默認(rèn)啟用,GOPATH將在1.13版本中棄用。

對(duì)于那些開(kāi)始使用Go 1.12的人來(lái)說(shuō),安裝和設(shè)置將如下所示。

安裝Go

在Mac上

在Ubuntu上

*從Go 1.8開(kāi)始,將GOPATH設(shè)置為環(huán)境變量不是必需的。如果我們沒(méi)有設(shè)置一個(gè),Go使用默認(rèn)的GOPATH為 $HOME/go

構(gòu)建項(xiàng)目

讓我們?cè)贕OPATH之外的首選位置為go項(xiàng)目創(chuàng)建文件夾

初始化模塊

使用Go模塊初始化項(xiàng)目名稱(chēng)。

這將創(chuàng)建模塊配置文件go.mod,其中包含模塊名稱(chēng)和版本。

此go.mod文件定義Module的根,go命令將相應(yīng)地與包一起使用,作為GOPATH的替代。

使用模塊

Go模塊主要解決以下用例,

依賴(lài)管理

讓我們使用jsoniter設(shè)置簡(jiǎn)單的json數(shù)據(jù)生成應(yīng)用程序。

該go.mod配置的工作通常喜歡gemfile用Ruby,requirement.txtPython中或其他依賴(lài)管理工具,但不完全是。

構(gòu)建go時(shí),將根據(jù)go代碼中的import語(yǔ)句獲取最新版本的依賴(lài)項(xiàng),并go.mod使用所需的依賴(lài)項(xiàng)更新配置。

對(duì)于我們的示例,go build將獲取最新的jsoniter及其依賴(lài)項(xiàng)。

每次go.mod得更新,go build命令創(chuàng)建一個(gè)名為的文件,go.sum其中包含特定模塊版本內(nèi)容的預(yù)期加密校驗(yàn)和。

go.sum 不是鎖 文件。它僅用于驗(yàn)證目的。有關(guān)詳細(xì)信息,請(qǐng)參閱這里 FAQ。

解決自定義包

讓我們創(chuàng)建一個(gè)自定義包并驗(yàn)證它是否在沒(méi)有GOPATH的情況下得到解決。我創(chuàng)建了一個(gè)名為的包handlers

編寫(xiě)一個(gè)函數(shù)

使用main.go中的自定義包功能,

現(xiàn)在go build解析沒(méi)有GOPATH的自定義包。二進(jìn)制文件將在指定的模塊名稱(chēng)中創(chuàng)建go.mod 。

讓我們執(zhí)行結(jié)果。

總結(jié)

模塊系統(tǒng)將幫助我們?yōu)镚o生態(tài)系統(tǒng)提供更好的身份驗(yàn)證和構(gòu)建速度。

記一次go module的坑

事情是這樣的,因?yàn)樾●R本次要寫(xiě)一個(gè)go項(xiàng)目。但是因?yàn)橐恍?quán)限問(wèn)題,一些依賴(lài)包在內(nèi)網(wǎng)小馬獲取不到,于是只能求助大大。大大給的策略就是他先把所有的依賴(lài)包go mod,然后go mod vendor遷移到項(xiàng)目目錄vendor下進(jìn)行本地依賴(lài)載入即可,也就是使用 go build -mod=vendor來(lái)編譯即可。一切似乎看起來(lái)還是那么完美。然后正要起飛,直接翻車(chē),現(xiàn)場(chǎng)如下?!具@里插播一條發(fā)現(xiàn),就是使用golang IDE go build 和使用命令行g(shù)o build 的區(qū)別在于前者不會(huì)生成.exe文件】

將大大go mod vendor完的包pull到本地,只要編譯就會(huì)發(fā)生如下錯(cuò)誤(以下省略了一部分類(lèi)似的報(bào)錯(cuò))。其實(shí)是 go.mod內(nèi)的所有依賴(lài)包都報(bào)錯(cuò)。

大大說(shuō)他的本地編譯是正常的。不得不懷疑是不是因?yàn)榇蟠蟊镜豨opath還有一份包依賴(lài)的原因,然而經(jīng)查并不是這個(gè)問(wèn)題。翻閱了網(wǎng)絡(luò)上的大部分資料無(wú)果,網(wǎng)絡(luò)上要么是說(shuō)是因?yàn)樽R(shí)別不到包,按照提示重新go?mod?vendor一下就可以了。小馬蠻試了一下,不出所料必然地報(bào)遠(yuǎn)程報(bào)獲取不到呢,IDE的報(bào)錯(cuò)定位其實(shí)是不準(zhǔn)確的。再次檢查vendor/modules.txt文件,沒(méi)有問(wèn)題,無(wú)果。 于是開(kāi)始質(zhì)疑golang IDE 的版本支持問(wèn)題,無(wú)果。看了下go.mod文件中寫(xiě)著go 1.14,也沒(méi)錯(cuò)呢,小馬用的GO SDK正是1.14.4版本。敲出go env 查看環(huán)境配置,GO111MODULE=on,因?yàn)榄h(huán)境變量是auto,但是go到一定版本后默認(rèn)是on,也沒(méi)問(wèn)題,無(wú)果。那問(wèn)題出在哪呢?由于沒(méi)有依賴(lài)包拉取權(quán)限,只能再次求助大大,大大表示也很奇怪,一番折騰,于是問(wèn)題得到解決?!具@里插播一條好玩的東西,就是GO111MODULE為什么是GO111呢,因?yàn)槠鋵?shí)1.11版本開(kāi)始支持MODULE的】

結(jié)論是:因?yàn)榇蟠骻o? mod的時(shí)候用的是go 1.13,而我編譯的時(shí)候用的 1.14,所以就報(bào)了這個(gè)奇怪的錯(cuò)誤。you what?直接懵逼。但是為啥go.mod文件中寫(xiě)的版本要求是1.14,而大大用1.13也編譯得好好的。

這是個(gè)大坑,掉進(jìn)坑里自己撲騰了一天?。∠M蠹抑?jǐn)慎入坑。

爬坑一小時(shí)出坑一秒鐘,每一次的爬坑都是充滿(mǎn)著十八般絕技。奇怪的姿勢(shì)又增加了。

go運(yùn)行方式有哪幾種?

如果GO111MODULE是auto則根據(jù)項(xiàng)目目錄位置和是否含有g(shù)o.mod文件來(lái)決定使用什么模式。如果是GO111MODULE=off則使用gopath,如果是on則使用module模式。gopath模式下的src目錄下不能有g(shù)o.mod文件,否則報(bào)錯(cuò)。

一些go mod命令 記錄備用,國(guó)內(nèi)的資料并不多(注意go mod?命令在?$GOPATH?里默認(rèn)是執(zhí)行不了的,因?yàn)?GO111MODULE?的默認(rèn)值是?auto。默認(rèn)在$GOPATH?里是不會(huì)執(zhí)行, 如果一定要強(qiáng)制執(zhí)行,就設(shè)置環(huán)境變量為?on。):

一學(xué)就會(huì),手把手教你用Go語(yǔ)言調(diào)用智能合約

智能合約調(diào)用是實(shí)現(xiàn)一個(gè) DApp 的關(guān)鍵,一個(gè)完整的 DApp 包括前端、后端、智能合約及區(qū)塊 鏈系統(tǒng),智能合約的調(diào)用是連接區(qū)塊鏈與前后端的關(guān)鍵。

我們先來(lái)了解一下智能合約調(diào)用的基礎(chǔ)原理。智能合約運(yùn)行在以太坊節(jié)點(diǎn)的 EVM 中。因此要 想調(diào)用合約必須要訪(fǎng)問(wèn)某個(gè)節(jié)點(diǎn)。

以后端程序?yàn)槔蠖朔?wù)若想連接節(jié)點(diǎn)有兩種可能,一種是雙 方在同一主機(jī),此時(shí)后端連接節(jié)點(diǎn)可以采用 本地 IPC(Inter-Process Communication,進(jìn) 程間通信)機(jī)制,也可以采用 RPC(Remote Procedure Call,遠(yuǎn)程過(guò)程調(diào)用)機(jī)制;另 一種情況是雙方不在同一臺(tái)主機(jī),此時(shí)只能采用 RPC 機(jī)制進(jìn)行通信。

提到 RPC, 讀者應(yīng)該對(duì) Geth 啟動(dòng)參數(shù)有點(diǎn)印象,Geth 啟動(dòng)時(shí)可以選擇開(kāi)啟 RPC 服務(wù),對(duì)應(yīng)的 默認(rèn)服務(wù)端口是 8545。。

接著,我們來(lái)了解一下智能合約運(yùn)行的過(guò)程。

智能合約的運(yùn)行過(guò)程是后端服務(wù)連接某節(jié)點(diǎn),將 智能合約的調(diào)用(交易)發(fā)送給節(jié)點(diǎn),節(jié)點(diǎn)在驗(yàn)證了交易的合法性后進(jìn)行全網(wǎng)廣播,被礦工打包到 區(qū)塊中代表此交易得到確認(rèn),至此交易才算完成。

就像數(shù)據(jù)庫(kù)一樣,每個(gè)區(qū)塊鏈平臺(tái)都會(huì)提供主流 開(kāi)發(fā)語(yǔ)言的 SDK(Software Development Kit,軟件開(kāi)發(fā)工具包),由于 Geth 本身就是用 Go 語(yǔ)言 編寫(xiě)的,因此若想使用 Go 語(yǔ)言連接節(jié)點(diǎn)、發(fā)交易,直接在工程內(nèi)導(dǎo)入 go-ethereum(Geth 源碼) 包就可以了,剩下的問(wèn)題就是流程和 API 的事情了。

總結(jié)一下,智能合約被調(diào)用的兩個(gè)關(guān)鍵點(diǎn)是節(jié)點(diǎn)和 SDK。

由于 IPC 要求后端與節(jié)點(diǎn)必須在同一主機(jī),所以很多時(shí)候開(kāi)發(fā)者都會(huì)采用 RPC 模式。除了 RPC,以太坊也為開(kāi)發(fā)者提供了 json- rpc 接口,本文就不展開(kāi)討論了。

接下來(lái)介紹如何使用 Go 語(yǔ)言,借助 go-ethereum 源碼庫(kù)來(lái)實(shí)現(xiàn)智能合約的調(diào)用。這是有固定 步驟的,我們先來(lái)說(shuō)一下總體步驟,以下面的合約為例。

步驟 01:編譯合約,獲取合約 ABI(Application Binary Interface,應(yīng)用二進(jìn)制接口)。 單擊【ABI】按鈕拷貝合約 ABI 信息,將其粘貼到文件 calldemo.abi 中(可使用 Go 語(yǔ)言IDE 創(chuàng)建該文件,文件名可自定義,后綴最好使用 abi)。

最好能將 calldemo.abi 單獨(dú)保存在一個(gè)目錄下,輸入“l(fā)s”命令只能看到 calldemo.abi 文件,參 考效果如下:

步驟 02:獲得合約地址。注意要將合約部署到 Geth 節(jié)點(diǎn)。因此 Environment 選擇為 Web3 Provider。

在【Environment】選項(xiàng)框中選擇“Web3 Provider”,然后單擊【Deploy】按鈕。

部署后,獲得合約地址為:0xa09209c28AEf59a4653b905792a9a910E78E7407。

步驟 03:利用 abigen 工具(Geth 工具包內(nèi)的可執(zhí)行程序)編譯智能合約為 Go 代碼。abigen 工具的作用是將 abi 文件轉(zhuǎn)換為 Go 代碼,命令如下:

其中各參數(shù)的含義如下。 (1)abi:是指定傳入的 abi 文件。 (2)type:是指定輸出文件中的基本結(jié)構(gòu)類(lèi)型。 (3)pkg:指定輸出文件 package 名稱(chēng)。 (4)out:指定輸出文件名。 執(zhí)行后,將在代碼目錄下看到 funcdemo.go 文件,讀者可以打開(kāi)該文件欣賞一下,注意不要修改它。

步驟 04:創(chuàng)建 main.go,填入如下代碼。 注意代碼中 HexToAddress 函數(shù)內(nèi)要傳入該合約部署后的地址,此地址在步驟 01 中獲得。

步驟 04:設(shè)置 go mod,以便工程自動(dòng)識(shí)別。

前面有所提及,若要使用 Go 語(yǔ)言調(diào)用智能合約,需要下載 go-ethereum 工程,可以使用下面 的指令:

該指令會(huì)自動(dòng)將 go-ethereum 下載到“$GOPATH/src/github.com/ethereum/go-ethereum”,這樣還算 不錯(cuò)。不過(guò),Go 語(yǔ)言自 1.11 版本后,增加了 module 管理工程的模式。只要設(shè)置好了 go mod,下載 依賴(lài)工程的事情就不必關(guān)心了。

接下來(lái)設(shè)置 module 生效和 GOPROXY,命令如下:

在項(xiàng)目工程內(nèi),執(zhí)行初始化,calldemo 可以自定義名稱(chēng)。

步驟 05:運(yùn)行代碼。執(zhí)行代碼,將看到下面的效果,以及最終輸出的 2020。

上述輸出信息中,可以看到 Go 語(yǔ)言會(huì)自動(dòng)下載依賴(lài)文件,這就是 go mod 的神奇之處??吹?2020,相信讀者也知道運(yùn)行結(jié)果是正確的了。

名稱(chēng)欄目:go語(yǔ)言module go語(yǔ)言適合做什么
本文URL:http://muchs.cn/article38/hjedpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站收錄、網(wǎng)站建設(shè)、微信小程序、企業(yè)建站定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)