欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:人工智能 知識圖譜開發(fā)日志

柚子快報激活碼778899分享:人工智能 知識圖譜開發(fā)日志

http://yzkb.51969.com/

應用于應用環(huán)境的配置.測試.發(fā)布 假如你寫了一個web,并且測試調(diào)試都沒有問題 并且,你想發(fā)給你的朋友,導師,或者部署到遠程云服務器上 那么,你需要配置相同的軟件,比如數(shù)據(jù)庫,web服務器,必要的插件,庫,etc…但這并不一定能保證軟件的正常運行,因為別人可能使用完全不同的操作系統(tǒng),甚至不同的Linux發(fā)行版本也會有差別 為了模擬完全相同的本地開發(fā)環(huán)境,我們自然想到會使用虛擬機 但是,虛擬機需要完全模擬硬件,并且運行整個OS,不但體積臃腫且內(nèi)存占用極高,程序的性能多多少少也會受到影響

這時,docker就派上了用場 Docker的概念和虛擬機很擬合,但由于不用模擬底層的硬件,只會為每一個應用提供完全隔離的運行環(huán)境,所以輕量級很多 這個環(huán)境可以用來配置不同的工具軟件,并且這個環(huán)境相互獨立互不影響 大伙一般稱這個環(huán)境叫Container/容器

Docker中的三個重要概念:

鏡像:可以理解為虛擬機的快照snapshot,里面包含了要部署的應用程序以及它關聯(lián)的所有庫 通過鏡像,我們可以創(chuàng)建很多獨立的容器 容器:類似一臺臺獨立運行你的程序的虛擬機 文件:自動化腳本,用以創(chuàng)建鏡像(類似于在虛擬機中安裝OS及軟件,只不過通過DockerFile這個腳本自動完成了)

桌面版安裝部分參考來源 WSL2:windows旗下Linux子系統(tǒng)

1.查看自己電腦有無虛擬化 添加Hyper-V: txt文件內(nèi)復制下列代碼并重命名:Hyper-V.cmd

pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

管理員權限運行Hyper: 啟用Hyper-V,子系統(tǒng),虛擬機平臺: 打開搜索欄,輸入windows,出現(xiàn)一個啟用或關閉Windows功能,并打開 也勾上 ... 安裝wsl

這里我不太清楚怎么安裝好的 如果是安好了誤刪,則需要微軟商店下載WINDOWS SUBSYSTEM FOT LINUX 但好像是,如果windows功能開啟了適用于linux的子系統(tǒng)則會自動有 微軟商店的WSL

檢查wsl并更新

wsl -l

wsl若報錯,沒有則跳過

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

更新WSL2的Linux內(nèi)核:官方下載地址

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

點擊更新WSL2的Linux內(nèi)核 此時提示沒有安裝Linux子系統(tǒng)發(fā)行版,不管,將默認安裝的Linux子系統(tǒng)版本設置為WSL2 將wsl版本設置為2

wsl.exe --set-default-version 2

1、關閉 Docker

2、“以管理員身份運行 powershell,輸入以下命令,升級wsl,耐心等待升級完成后,再啟動Docker就好了。

C:\WINDOWS\system32> wsl --update

修改默認安裝位置 安裝界面上是沒有提供修改安裝目錄的地方的,但官方提供了參數(shù)修改: 安裝包自己就提供了修改安裝路徑的功能,CMD中運行:

改成你需要的目錄,默認是:C:\Program Files\Docker\Docker

"Docker Desktop Installer.exe" install --installation-dir=

.... 打開后自動開始安裝,有下一步點下一步,全部選項默認即可。這里不能選擇安裝位置,Docker默認安裝必須是C盤,后續(xù)更改的是鏡像加載位置。雖然可以通過修改注冊表改變默認安裝位置,但是會引起問題,同時殃及一大堆其他軟件,極不推薦!

安裝完成后打開Docker,會出現(xiàn)引導界面,點擊右下方skip跳過

點擊下載docker 出現(xiàn)helloworld鏡像

修改Docker鏡像的加載路徑

如果您的C盤空間夠用,完全沒有必要遷移,請?zhí)D(zhuǎn)至“配置WRF”。

Docker默認安裝位置為C盤,不建議修改,但是鏡像的存儲和加載路徑可以被修改,前提是Docker采用的是WSL2的模式,即wsl -l -v看到的兩行docker相關的VERSION都是2,否則遷移會使docker難以加載并且效率變低(這是我自己的經(jīng)驗不代表官方)。

同時,遷移前Docker內(nèi)不應該有任何需要用的容器、鏡像存在,遷移已有的容器到其他盤我也不知道會出什么問題,保險起見、效率起見還是清空。

清空方法:Docker右上角小蟲子(Troubleshoot)- Clean / Purge data,彈出窗口全部打勾。

清空后Docker內(nèi)所有鏡像消失,之前的hello-world也消失,此時先選擇好自己想要遷移到哪里 比如D盤,然后新建文件夾,比如DockerImages,打開以后在里面繼續(xù)創(chuàng)建兩個文件夾:docker-desktop和docker-desktop-data,名字不用完全一致,只是為了好區(qū)分。

創(chuàng)建這兩個文件夾的原因是在Terminal中之前看到的docker-desktop和docker-desktop-data一個存放程序,一個存放鏡像,路徑不能一樣。 然后把Docker完全退出!否則會出問題!

Docker任務欄圖標消失后,還需要使用命令

wsl -l -v 確認docker-desktop和docker-desktop-data兩項右側的狀態(tài)是stop而非running,才是徹底停止了。

如果仍是running的話,使用wsl --shutdown,停止所有wsl虛擬環(huán)境。 wsl --export docker-desktop docker-desktop.tar wsl --export docker-desktop-data docker-desktop-data.tar 這一步是將原來的docker鏡像導出,由于之前進行過清理,所以兩個都不會太大。命令中的“docker-desktop.tar”是相對位置,即保存在現(xiàn)在的DockerImages文件夾下,也可以填自己想要的絕對位置,data同理。 然后注銷docker的wsl子系統(tǒng)

wsl --unregister docker-desktop

wsl --unregister docker-desktop-data

再在新位置重新創(chuàng)建

wsl --import docker-desktop D:\Docker-work\docker-desktop docker-desktop.tar

wsl --import docker-desktop-data D:\Docker-work\docker-desktop-data docker-desktop-data.tar

這里的命令可以分段來看,“D:\DockerImages\docker-desktop”是目標目錄,用絕對位置,新的子系統(tǒng)會創(chuàng)建在這里;空格以后的“docker-desktop.tar”是剛剛導出的鏡像的相對位置,意思是把這個鏡像導入到前面的目標目錄里面。 docker-desktop-data同理。 導入以后,在相應的兩個目標文件夾里就會顯示出后綴為.vhdx的虛擬磁盤,大小和之前導出的兩個tar相比量級相同,會大一些。 再次啟動Docker,短暫等待之后坐下小鯨魚變綠,說明遷移成功,軟件沒受影響。 更改鏡像地址 點擊右下應用

Docker操作-桌面/VS

下面所有的操作,均有桌面版和插件版的對應方法,我各自舉例一點: 桌面版操作: 圖形界面可以在后臺查看應用所有的輸出,便于調(diào)試 也可看見當前容器的信息,狀態(tài)…可以停止,重啟,刪除容器,可shell遠程調(diào)試這個容器 若刪除一個容器,之前對該容器所有的操作和添加的數(shù)據(jù)都會丟失(類似于虛擬機的刪除) 若想要保存容器的數(shù)據(jù),可以使用docker中提供的volume數(shù)據(jù)卷,可以將其當作一個在本地主機和不同容器間共享的文件夾,比如下面在容器1中修改了volume2,則容器3享用v2時是被修改了的

創(chuàng)建數(shù)據(jù)卷-終端

docker volume create

docker run -dp 80:5000 -v 數(shù)據(jù)卷名haha:/etc/ha 容器名c

//-v將數(shù)據(jù)卷掛載mount到容器的哪一個路徑上,此處將haha掛在到容器名c的/etc/ha這個路徑下,向這個路徑寫入的任何數(shù)據(jù)都會被永久保存在數(shù)據(jù)卷中

VSCODE推薦安裝其擴展: DockerHub上有很多高質(zhì)量的操作系統(tǒng)鏡像,不同的OS提供不同的包管理工具:

Ubantu:apt

Fedora:dnf

也有許多方便某一種語言,某種框架開發(fā)的框架:

node,redis,nginx,py,tomcat

使用>docker來運行各種Docker命令,并且在左側面板中看到所有的鏡像,容器等 在應用的根目錄下創(chuàng)建一個DockerFile文件

完成一個DOCKER-IMAGE鏡像創(chuàng)建,通過自動化腳本DOCKERFILE

FROM python:3.8-slim-buster//指定一個基礎鏡像basic-image

//官方鏡像:pyhton

//這個鏡像的版本標簽Tags:3.8-slim-buster

WORKDIR /app //指定了該命令之后所有Docker命令的工作路徑,若不存在會自動創(chuàng)建該路徑,避免絕對路徑和手動cd切換

COPY..

//<本地路徑><目標路徑(Docker鏡像中的路徑)>

//將所有的程序拷貝導Docker鏡像中

//第一個"."表示程序根目錄下的所有文件

//第二個"."代表當前的工作路徑,即之前指定的app目錄

RUN pip3 Install -r requirement.txt //允許創(chuàng)建鏡像時運行任意的shell命令,這里是安裝py程序的所有關聯(lián)

CMD["python3","app.py"] //CMD["可執(zhí)行文件","參數(shù)1",..,"參數(shù)n"]指定當docker容器運行起來以后需要執(zhí)行的指令

//RUN是創(chuàng)建鏡像時使用,CMD運行容器的時候使用

終端terminal運行創(chuàng)建鏡像(首次慢,但docker會緩存每一個操作,二次快,這個在docker中被稱為分層layer)

docker built -t 名字 .

//-t:指定鏡像名字/標簽

//最后的"."告訴docker應該在當前目錄下尋找這個dockerfile

有了鏡像,啟動

docker run -p 80:5000 -d 名字

//-p:映射容器的某個端口到本地主機上,這樣才能從主機訪問這個應用

//80主機端口

//5000容器的端口

//-d讓容器在后臺運行(detach):使容器的輸出不顯示在控制臺

瀏覽器地址欄輸入localhost訪問這個應用即可

多個容器可以干嘛? 一個運行web 一個運行數(shù)據(jù)庫 ->數(shù)據(jù)和應用邏輯分離,各自獨立:web程序宕機,數(shù)據(jù)庫依舊運轉(zhuǎn),此時僅修復web容器即可

docker-compose.yml

services://定義多個container

web://容器1

build:.

ports:

- "80:5000"

db://容奇2

image:"mysql"

enviroment:

MYSQL_DATABASE:finance-db

MYSQL_ROOT_PASSWORD:secret

volumes:

- my-data:/var/lib/mysql

volumes:

my-data:

//可通過這兩個環(huán)境變量指定數(shù)據(jù)庫的名字和連接密碼

定義完畢,保存文件 使用docker compose up來運行所有的容器 使用docker compose down來停止并刪除所有的容器 新創(chuàng)建的數(shù)據(jù)卷需要手動刪除,除非手動后面加入–volumes參數(shù)

很多應用,數(shù)據(jù)庫容器都運行在同一個計算機中,隨著應用規(guī)模的增大,一臺計算機無法滿足我們的所有需求,我們需要一個集群來提供服務,負載均衡,故障轉(zhuǎn)移,則用kubernetes kubernetes就是將各個容器分發(fā)到一個集群cluster上運行,并進行全自動化的管理,包括應用的部署和升級

知識圖譜開發(fā)日志

... 下載的GitHub最好置入新建文件夾,然后導入以此為根目錄

返回,分別有:

那里報錯下哪個插件(這里的vue,vite,react,json)

確保dc已安裝docker-compose --version 文件資源管理器找到對應含docker-compose.yml的地方 將.env.example文件修改為.env

這個時候就是你的localhost在docker容器端口與應用端口連接的情況下可以訪問這個相連端口了 好好好,4個G的項目干到37個G

... 環(huán)境 官方 鏡像 生成鏡像 git docker使用 使用2 3 4

大學

docker使用 Neo4j-APOC擴展與使用 neo4j:browser 知識圖譜構建:圖數(shù)據(jù)庫Neo4j的節(jié)點和關系的新增、刪除 vue+neo4j +純前端(neovis.js / neo4j-driver) 實現(xiàn) 知識圖譜的集成 圖數(shù)據(jù)庫Neo4j實戰(zhàn)

$后面輸入查詢語句

1.

往Neo4j里放數(shù)據(jù)有多種方式,具體取決于你的數(shù)據(jù)格式、數(shù)據(jù)量大小以及你的個人偏好。以下是一些常見的方法:

使用Cypher語法直接創(chuàng)建:

適用于數(shù)據(jù)量較小的情況。你可以直接編寫Cypher語句來創(chuàng)建節(jié)點、關系和屬性。

例如:CREATE (n:Person {name: '張三', age: 30}) 會創(chuàng)建一個名為“張三”的Person節(jié)點,并設置其age屬性為30。

使用LOAD CSV導入數(shù)據(jù):

如果你的數(shù)據(jù)是CSV格式的,你可以使用LOAD CSV語句將數(shù)據(jù)導入Neo4j。

首先,確保CSV文件符合Neo4j的要求(如編碼格式、字段分隔符等)。

然后,編寫包含LOAD CSV的Cypher語句,指定CSV文件的路徑,并定義如何創(chuàng)建節(jié)點和關系。

例如:LOAD CSV WITH HEADERS FROM "file:///your_data.csv" AS row CREATE (n:Person {name: row.name, age: toInteger(row.age)})。

使用neo4j-admin工具導入:

適用于大量數(shù)據(jù)的導入。neo4j-admin工具提供了高效的數(shù)據(jù)導入功能。

你需要按照工具的格式要求準備數(shù)據(jù),然后使用命令行調(diào)用neo4j-admin進行導入。

使用編程語言導入數(shù)據(jù):

如果你熟悉編程,可以使用Neo4j提供的Java API、Python驅(qū)動程序等,通過編程方式將數(shù)據(jù)導入Neo4j。

這通常涉及到連接到Neo4j數(shù)據(jù)庫,然后執(zhí)行相應的Cypher語句或操作來創(chuàng)建節(jié)點和關系。

使用ETL工具:

ETL(Extract, Transform, Load)工具可以幫助你從各種數(shù)據(jù)源中提取數(shù)據(jù),進行必要的轉(zhuǎn)換,然后加載到Neo4j中。

這通常需要一些配置和映射工作,但一旦設置完成,就可以自動化地導入數(shù)據(jù)。

使用第三方插件或工具:

有些第三方插件或工具提供了額外的數(shù)據(jù)導入功能,如APOC插件等。

你可以根據(jù)具體需求選擇適合的插件或工具來導入數(shù)據(jù)。

在選擇導入方法時,請考慮你的數(shù)據(jù)量、數(shù)據(jù)格式、導入頻率以及你的技術棧和偏好。對于大量數(shù)據(jù)的導入,通常建議使用更高效的方法,如neo4j-admin工具或ETL工具。對于小量數(shù)據(jù)或需要靈活處理的情況,使用Cypher語法或編程語言可能更為方便。

2.

您上傳的文件可以是多種格式,具體取決于您選擇的數(shù)據(jù)導入方法以及您的具體需求。Neo4j支持多種數(shù)據(jù)格式的導入,包括但不限于以下幾種常見的格式:

CSV格式:CSV(逗號分隔值)是一種通用的表格數(shù)據(jù)格式,非常適合用于存儲結構化的數(shù)據(jù)。Neo4j提供了LOAD CSV語句,允許您直接從CSV文件中導入數(shù)據(jù)。此外,如果您使用py2neo等庫,也可以方便地將CSV文件導入Neo4j。

JSON格式:JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,易于人類閱讀和編寫,同時也易于機器解析和生成。Neo4j可以直接將JSON格式的數(shù)據(jù)導入為圖結構。

GraphML格式:GraphML是一種用于表示圖形數(shù)據(jù)的XML格式。如果您的數(shù)據(jù)已經(jīng)是GraphML格式,那么可以直接導入Neo4j。

在選擇文件格式時,請考慮您的數(shù)據(jù)來源、數(shù)據(jù)量和數(shù)據(jù)處理需求。如果您的數(shù)據(jù)已經(jīng)是上述某種格式,那么可以直接使用該格式進行導入。如果需要進行數(shù)據(jù)轉(zhuǎn)換或處理,您可能需要使用編程語言或ETL工具將數(shù)據(jù)轉(zhuǎn)換為適當?shù)母袷健?/p>

此外,無論使用哪種格式,都需要確保數(shù)據(jù)的完整性和準確性,以及符合Neo4j的導入要求。例如,CSV文件需要符合特定的編碼和格式要求,JSON文件需要具有正確的結構和鍵值對等。

最后,根據(jù)您的具體需求和使用的導入方法,您可能需要編寫一些自定義的腳本或語句來處理數(shù)據(jù)導入過程中的特定問題。

3.

將 JSON 文件導入 Neo4j 的方法取決于您使用的具體工具和 Neo4j 的版本。Neo4j 本身并不直接支持從 JSON 文件導入數(shù)據(jù)。通常,您需要使用 Cypher 查詢語言或其他工具/插件來解析 JSON 并將其轉(zhuǎn)換為圖結構。

以下是一些可能的方法:

使用 APOC 插件:APOC 是一個流行的 Neo4j 插件,它提供了許多有用的功能和過程,包括處理 JSON 數(shù)據(jù)。如果您已經(jīng)安裝了 APOC,您可以使用其提供的函數(shù)來解析和導入 JSON 數(shù)據(jù)。

編寫自定義腳本:您可以使用 Python、Java 或其他語言編寫一個腳本,該腳本讀取 JSON 文件,解析其內(nèi)容,并使用 Neo4j 驅(qū)動程序(如 Neo4j Driver for Python 或 Neo4j Java Driver)將數(shù)據(jù)作為 Cypher 語句發(fā)送到 Neo4j 數(shù)據(jù)庫。

轉(zhuǎn)換為 CSV 并導入:如果您熟悉 CSV 格式并且數(shù)據(jù)量適中,您可以考慮將 JSON 數(shù)據(jù)轉(zhuǎn)換為 CSV 格式,然后使用 Neo4j 的 LOAD CSV 功能將數(shù)據(jù)導入圖數(shù)據(jù)庫。

使用第三方工具:有些第三方工具可能支持直接從 JSON 文件導入數(shù)據(jù)到 Neo4j。您可以查找并評估這些工具,看看是否有適合您需求的。

請注意,無論您選擇哪種方法,都需要確保您的 JSON 數(shù)據(jù)結構與您的圖模型相匹配,并且正確地映射了節(jié)點、關系和屬性。

4.

在Neo4j中,如果你收到錯誤消息“Create node with labels 'Person' on database 'companies' is not allowed for user 'companies' with roles [PUBLIC, companies]”,這意味著當前用戶(在本例中是'companies'用戶)沒有足夠的權限在'companies'數(shù)據(jù)庫上創(chuàng)建帶有'Person'標簽的節(jié)點。

Neo4j支持基于角色的權限管理,以確保不同用戶只能執(zhí)行他們被授權的操作。在這種情況下,'companies'用戶只擁有PUBLIC和companies這兩個角色的權限,而這些權限可能不包括在'companies'數(shù)據(jù)庫上創(chuàng)建特定標簽的節(jié)點的能力。

要解決這個問題,你需要做以下幾步:

登錄為具有管理權限的用戶:通常,這是neo4j超級用戶,它擁有所有數(shù)據(jù)庫的完全訪問權限。

檢查并修改用戶權限:使用Cypher查詢或Neo4j的管理界面來檢查'companies'用戶的當前權限,并根據(jù)需要修改它們。你可能需要給用戶分配額外的角色或直接授予創(chuàng)建節(jié)點的權限。

例如,使用以下Cypher查詢來查看用戶的角色和權限:

cypher

SHOW GRANTS FOR USER 'companies';

要授予用戶創(chuàng)建節(jié)點的權限,你可以使用類似以下的命令(這取決于你的具體需求和安全策略):

cypher

GRANT CREATE ON NODE Labels TO 'companies';

重新嘗試操作:一旦權限被正確設置,'companies'用戶應該能夠在'companies'數(shù)據(jù)庫上創(chuàng)建帶有'Person'標簽的節(jié)點了。

請注意,直接修改用戶權限可能會帶來安全風險,因此請確保你了解這些更改的含義,并遵循你的組織的安全最佳實踐。如果你不確定如何操作,最好咨詢你的數(shù)據(jù)庫管理員或具有Neo4j管理經(jīng)驗的專業(yè)人員。

5.

在Neo4j中,如果你想授予用戶在特定標簽的節(jié)點上創(chuàng)建節(jié)點的權限,你應該使用以下格式的Cypher語句:

cypher

GRANT CREATE ON LABELS TO ;

這里, 是你想要授予創(chuàng)建權限的節(jié)點標簽的名稱, 是你想要授予權限的用戶的名稱。注意,ON LABELS 而不是 ON NODE Labels 是正確的語法。

例如,如果你想給 'companies' 用戶授予創(chuàng)建標簽為 'Person' 的節(jié)點的權限,你應該這樣寫:

cypher

GRANT CREATE ON LABELS Person TO 'companies';

請確保將 'Person' 替換為你實際想要授予權限的標簽名稱,并且 'companies' 是正確的用戶名。

如果你正在嘗試為多個標簽授予權限,你需要為每個標簽單獨執(zhí)行 GRANT 語句,或者在一些Neo4j的版本中,可以使用逗號分隔標簽名稱:

cypher

GRANT CREATE ON LABELS Person, Employee TO 'companies';

請根據(jù)你的Neo4j版本和配置調(diào)整語句。如果你不確定版本或具體的語法,建議查閱對應版本的Neo4j官方文檔。此外,請確保執(zhí)行此操作的用戶具有足夠的權限來修改其他用戶的權限。

6.

您提供的Cypher語句是有效的,用于在Neo4j數(shù)據(jù)庫中創(chuàng)建一個新的節(jié)點,并給它賦予Person標簽以及name和age兩個屬性。這里是完整的語句:

cypher

CREATE (n:Person {name: 'John Doe', age: 30})

這條語句做了以下幾件事情:

CREATE:這是一個Cypher命令,用于在數(shù)據(jù)庫中創(chuàng)建新的節(jié)點或關系。

(n:Person {name: 'John Doe', age: 30}):這定義了一個新節(jié)點n,并給它分配了Person標簽。同時,它還設置了兩個屬性,name的值是'John Doe',age的值是30。

要執(zhí)行這條語句,您需要:

確保您已經(jīng)連接到Neo4j數(shù)據(jù)庫。

打開Neo4j Browser(或您選擇的任何Neo4j客戶端)。

在命令輸入框中輸入上述Cypher語句。

執(zhí)行該語句(通常是通過點擊“運行”按鈕或使用快捷鍵)。

如果一切正常,Neo4j將在數(shù)據(jù)庫中創(chuàng)建一個新的Person節(jié)點,并且該節(jié)點將具有指定的屬性。您可以使用MATCH和RETURN語句來檢索并驗證新創(chuàng)建的節(jié)點:

MATCH (n:Person {name: 'John Doe'})

RETURN n;

這條查詢會找到所有標簽為Person且name屬性為'John Doe'的節(jié)點,并返回它們。如果您剛剛創(chuàng)建了該節(jié)點,那么應該只返回一個結果。

柚子快報激活碼778899分享:人工智能 知識圖譜開發(fā)日志

http://yzkb.51969.com/

相關文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19216331.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄