Dragon
古风汉服美女图集

jupyter

2023-12-27 00:23 0 微浪网
导语: jupyter官网入口网址,Jupyter,jupyter notebook 安装,怎么使用,默认目录,

jupyter

jupyter官网

Jupyter,jupyter notebook 安装,怎么使用,默认目录
网站服务:jupyterjupyter notebookjupyter notebook 安装
The Jupyter Notebook is a web-based interactive computing platform. The notebook combines live code, equations, narrative text, visualizations, interactive dashboards and other media.

Jupyter官网,jupyter notebook 安装,怎么使用,默认目录

什么是Jupyter?

Jupyter是一个非营利组织,旨在“为数十种编程语言的交互式计算开发开源软件,开放标准和服务”。2014年由Fernando Pérez从IPython中衍生出来,Jupyter支持几十种语言的执行环境。Jupyter项目开发并支持交互式计算产品Jupyter Notebook、JupyterHub和JupyterLab。
Jupyter官网: https://jupyter.org/

Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。目前,数据挖掘领域中最热门的比赛 Kaggle 里的资料都是 Jupyter 格式。对于机器学习新手来说,学会使用 Jupyter Notebook 非常重要。

什么是 Jupyter Notebook?

Jupyter Notebook 是一款开放源代码的 Web 应用程序,可让我们创建并共享代码和文档。 它提供了一个环境,你可以在其中记录代码,运行代码,查看结果,可视化数据并在查看输出结果。这些特性使其成为一款执行端到端数据科学工作流程的便捷工具 ,可以用于数据清理,统计建模,构建和训练机器学习模型,可视化数据以及许多其他用途。 当你还在构建项目原型时,Jupyter Notebooks 真的特别好用,因为你的代码是被写入独立的单元中并被单独执行的。这允许用户测试项目中的特定代码块,而无需从脚本的开始执行代码。许多其他的 IDE 环境(Integrated Development Environment, 集成开发环境、(如 RStudio 、也以其他几种方式做到这一点,但我发现 Jupyter 的单个单元结构是最好的。 正如你在本文中将会看到的,这些 Notebooks 是数据科学家手中非常灵活、可交互和强大的工具。他们甚至允许你运行除 Python 以外的其他语言,比如 R 、SQL 等。由于它们比 IDE 平台更具交互性,因此它们被广泛地应用于教学场景。

如何安装 Jupyter Notebook?

首先你需要在机器上安装 Python,Python 2.7或Python 3.3(或更高版本、都可以。 Anaconda 新用户可以使用 Anaconda 发行版来同时安装 Python 和 Jupyter Notebooks。 Anaconda 安装了这两种工具,并包含了数据科学和机器学习社区中常用的很多软件包。你可以从这里下载最新版本的Anaconda 。 下载地址:https://jupyter.readthedocs.io/en/latest/install.html pip 安装方法 如果出于某种原因,你决定不使用 Anaconda,那么你需要确保你的机器正在运行最新版本的 pip。怎么做?如果你已经安装了 Python,那么 pip 已经安装好了。要升级到最新的版本,请参照下面的代码: #Linux and OSX

pip install -U pip setuptools

#Windows

python -m pip install -U pip setuptools 一旦 pip 安装完毕,你可以继续安装 Jupyter: #For Python2

pip install jupyter

#For Python3

pip3 install jupyter 你可以在这里(地址:https://jupyter.readthedocs.io/en/latest/install.html、查看官方的 Jupyter 安装文档。 开始 现在我们已经了解了 Notebooks 是什么,以及如何在自己的机器上安装和设置 Notebooks。是时候开始动动手了! 要运行 Jupyter Notebooks,只需输入以下命令就可开始使用! jupyter notebook 执行上面命令之后, Jupyter Notebook 将在你的默认浏览器中打开,网址为:http://localhost:8888/tree 在某些情况下,它可能无法自动打开。这种情况下,你的终端或者命令提示符中将会生成一个带有令牌密钥( token key 、的网址。要打开 Notebook,你需要将整个 URL(包括令牌密钥、复制粘贴到浏览器中。 Notebook 打开后,你会在顶部看到三个选项卡:Files(文件、,Running(运行、和 Clusters(集群、。Files 基本上列出了所有的文件,Running 显示你当前已经打开的终端和Notebooks,Clusters 由 IPython parallel 包提供,用于并行计算。 要打开一个新的 Jupyter Notebook,请单击页面右侧的“New”选项卡。在这里,你有四个选项可供选择:

  • Python 3
  • Text File (文本文件)
  • Folder (文件夹)
  • Terminal (终端)

在 “Text File” 选项中,你会得到一个空白的文档。输入你喜欢的任何字母,单词和数字。它基本上是一个文本编辑器(类似于 Ubuntu 上的应用程序、。你也可以选择一种语言(支持非常多的语言、,然后用该语言来写一个脚本。你还可以查找和替换文件中的单词。 在 “Folder” 选项中, 顾名思义它的功能就是创建文件夹。你可以创建一个新文件夹来放入文件,重新命名或者删除它。 “Terminal” 的工作方式与你的 Mac 电脑或 Linux 电脑上的终端完全相同(或者 Windows 上的 cmd 、。它在你的Web浏览器中支持终端会话。在这个终端中输入 python ,瞧!现在你已经可以开始写 python 脚本了。 但在本文中,我们将重点介绍 Notebooks,因此我们将从“New”选项中选择 “Python 3” 选项。你会看到如下的截图: 然后,你可以导入最常见的 Python 库——pandas 和 numpy——来开始你的项目。代码上方的菜单栏提供了操作单元格的各种选项:insert (添加),edit (编辑),cut (剪切),move cell up/down (上下移动单元格),run cells(在单元格中运行代码),interupt (停止代码),save (保存工作),以及 restart (重新启动内核)。 在下拉菜单中(如上所示、,你有四个选项:

  • Code – 这是你输入代码的地方
  • Markdown – 这是你输入文本的地方。你可以在运行代码后添加结论,添加注释等。
  • Raw NBConvert – 这是一个命令行工具,可将你的笔记本转换为另一种格式(如 HTML、
  • Heading – 你可以将标题添加到单独的小节并使你的 Notebook 看起来干净整洁。这个选项现在已经集成到 Markdown 选项中。添加一个“##”,以确保在你之后输入的内容将被视为标题

使用 Magic Functions

开发人员已经插入了预定义的 magic functions,使你的工作更方便和更具交互性。你可以运行以下命令来查看这些函数的列表(注意:通常不需要输入“%”,因为通常 Automagic 是默认打开的、: %lsmagic 你会看到许多选项,你甚至可能认识其中的 %clear, %autosave, %debug 和 %mkdir 等函数。magic command 有两种运行方式:

  • 逐行运行( Line-wise 、
  • 逐块运行( Cell-wise 、

顾名思义, Line-wise 是当你想要执行一个单行命令的时候使用,而 Cell-wise 是你想要执行的命令不仅仅是一行,而是整个单元格中的整个代码块时使用。 在逐行运行模式中,所有给定的命令都必须以 % 字符开始,而在逐块运行模式下,所有命令都必须以 %% 开头。让我们看看下面的例子来更好的理解: 逐行模式: %time a = range(10) 逐块模式: %%timeit a = range (10) min(a) 我建议你运行这些命令,看看其中的区别!

不仅限于 Python – 在 Notebooks 中使用 R,Julia 和JavaScript

Notebooks 的魔术并不止于此。你甚至可以在 Notebooks 中使用其他语言,如 R,Julia,JavaScrip t等。我个人喜欢 R 中的 ggplot2 软件包,因此使用 Notebooks 来进行探索性数据分析非常方便。 要在 Jupyter 中启用 R,你需要 GitHub上提供的 IRKernel( R 的专用内核、。这里有一份详细的指南(地址:https://discuss.analyticsvidhya.com/t/how-to-run-r-on-jupyter-ipython-notebooks/5512、,总共需要八个步骤,还有截图来引导你一步一步进行操作。 如果你是 Julia 用户,你也可以在 Jupyter Notebooks 中使用它!查看这篇详尽的文章(地址:地址:https://discuss.analyticsvidhya.com/t/how-to-run-r-on-jupyter-ipython-notebooks/5512、,它重点介绍了 Julia 用户如何学习数据科学,并包括了一章节介绍如何在 Jupyter 环境中使用 Julia。 如果你更喜欢使用 JavaScript,我推荐使用 IJavascript 内核。查看这个 GitHub 库(地址:https://github.com/n-riesco/ijavascript、,它会引导你在不同操作系统上安装此内核。请注意,你需要先安装 Node.js 和 npm 才能使用它。

Jupyter Notebooks 中的交互式命令板

在开始添加小插件(widget、之前,你需要导入 widgets 包: from ipywidgets import widgets 小插件的基本类型是典型的文本输入框和按钮。请参阅以下来自Dominodatalab 的示例,了解一下交互式小插件是怎么使用的: 你可以在这里(地址:https://blog.dominodatalab.com/interactive-dashboards-in-jupyter/、查看详尽的开发指南。

键盘快捷键——节省时间并提高效率!

快捷键是 Jupyter Notebooks 最好用的功能之一。当你想运行任何代码块时,你只需要按下Ctrl + Enter 即可。Jupyter Notebooks 提供的键盘快捷键非常多,为我们节省了大量时间。 以下是我们挑选的一些快捷键,你在开始使用 Notebooks 时会经常用到这些快捷键。我强烈建议你阅读这些内容的时候一个一个地尝试一下这些快捷键。 Jupyter Notebook 提供了两种不同的键盘输入模式 – 命令和编辑。命令模式将键盘与 Notebook 命令绑定,并由具有蓝色左边距的带有灰色单元格边框来表示。编辑模式允许你将文本(或代码、输入活动单元格,并以绿色单元格边框表示。
使用 Esc 和 Enter 在命令和编辑模式之间跳转。现在就试试吧! 一旦进入命令模式(即没有活动单元格、,就可以尝试以下快捷键:

  • A 键将在选中单元格上方插入新单元格,B 键将在选中单元格下方插入一个单元格
  • 要删除单元格,请连续按两次 D 键
  • 要撤消已删除的单元格,请按 Z 键
  • Y 键将当前的选中单元格变成代码单元格
  • 按住 Shift + 向上或向下箭头键可以选择多个单元格。在多选模式下,按 Shift + M 会合并选中的单元格
  • F 键会弹出 “查找和替换” 菜单

处于编辑模式时(在命令模式下按 Enter 键进入编辑模式、,你会发现以下快捷键非常好用:

  • Ctrl + Home 转到单元格的开头
  • Ctrl + S 会保存你的工作
  • 和上面提过的一样,Ctrl + Enter 将运行你的整个单元格
  • Alt + Enter 不仅会运行你的单元格,它还会在下方添加一个新的单元格
  • Ctrl + Shift + F 打开命令选项板

要查看整个键盘快捷键列表,请在命令模式下按 H 或转到 Help 菜单栏下的 Keyboard shortcuts。请经常检查这些内容,因为经常会有新的快捷键被加进来。 有用的 Jupyter Notebooks 扩展 扩展可以有效提高你的 Jupyter Notebooks 的生产力。安装和使用扩展的最佳工具之一是 Nbextensions。它需要两个简单的步骤来安装(也有其他方法,但我发现这是最方便的、: 第1步:用 pip 来安装它: pip install jupyter_contrib_nbextensions 第2步:安装关联的 JavaScript 和 CSS 文件: jupyter contrib nbextension install –user 完成此操作后,你会在 Jupyter Notebook 主页顶部看到一个 Nbextensions 选项卡。这里面有很多非常棒的扩展供你使用。 要启用一个扩展,只需点击它来激活。我在下面提到了4个我认为最有用的扩展:

  • Code prettify:重新格式化和美化代码块的内容。
  • Printview:这个扩展添加了一个工具栏按钮来调用当前 Notebook 的 jupyter nbconvert,并可选择在新的浏览器标签中显示转换后的文件。
  • Scratchpad:这个扩展增加一个便捷单元格,它可以让你运行你的代码而不必修改你的 Notebook。这是一个非常方便的扩展,特别是当你想要测试你的代码,但不想在你的活动Notebook上做这件事。
  • Table of Contents (2):这个扩展可以收集你的 Notebook 中的所有标题,并将它们显示在一个浮动窗口中。

这些只是你可以使用的其中一些扩展。我强烈建议查看整个扩展列表并对它们进行测试。 保存和共享你的 Notebook 这是 Jupyter Notebook 中最重要和最棒的功能之一。当我需要写博客文章,但我的代码和注释都保存在 Jupyter 文件中时,我需要先将它们转换为另一种格式。请记住,这些 Notebooks 采用 json 格式,在共享它时这并不是很有帮助。我无法在电子邮件或博客上发布不同的单元格或代码块,对吧? 进入 Files 菜单,你会看到一个 Download As 选项: 你可以将你的 Notebook 保存为 7 个选项中的任何一个。最常用的是 .ipynb 文件,这样其他人就可以在自己的机器上复制代码;或者保存为 .html 文件, 这样会打开一个网页(当你想要保存嵌入在 Notebook 中的图像时,这会派上用场、。 你也可以使用 nbconvert 选项手动将你的 Notebook 转换为不同的格式,如 HTML 或 PDF。 你还可以使用 jupyterhub,它允许你在其服务器上托管 Notebooks 并与多个用户共享。许多顶尖的研究项目都使用这个功能用于协作。 JupyterLab JupyterLab 于今年 2 月推出,它允许以更灵活和更强大的方式处理项目,但使用的是和 Jupyter Notebooks 相同的组件。JupyterLab 环境与 Jupyter Notebooks 完全相同,但用户会有更高效的体验。 在 JupyterLab 中,你只需一个窗口即可安排 Notebook 的工作区域、终端、文本文件和输出!你要做的仅仅是将单元格拖放到你想要的位置。你还可以通过实时预览功能来编辑常用文件格式,如 Markdown、CSV 和 JSON,以便在实际文件中实时查看所发生的变化。 如果你想在你的机器上试用它,你可以在这里查看安装说明(地址:http://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html、。开发人员的目标是  JupyterLab 最终可以取代 Jupyter Notebooks。但是,要做到这一点还要花点时间。 最佳实践 虽然单独工作可能很有趣, 但大多数时候你会发现自己是在一个团队中工作。在这种情况下,遵循指导方针和最佳实践非常重要,这样可以确保你的代码和 Jupyter Notebooks 被正确标注,以便与你的团队成员保持一致。下面我列出了一些最佳实践指南,你在 Jupyter Notebooks 上工作时一定要遵循以下指南:

  • 对于任何程序员来说最重要的事情之一:始终确保为代码添加合适的注释!
  • 确保你有代码所需的文档。
  • 考虑一个命名方案,并坚持在所有代码中使用以确保一致性。这样其他人更容易读懂你的代码。
  • 无论你需要什么库,在 Notebooks 开始时导入它们(并在它们旁边添加注释,说明导入它们的目的、。
  • 确保代码中行与行之间有适当间隔,不要把循环和函数放在同一行中。
  • 有时候你会发现你的文件变得非常繁重。看看有没有方法隐藏你认为对于以后参考不太重要的代码。Notebooks 看起来整洁干净, 让人赏心悦目也非常重要。
  • Matplotlib 可以很漂亮整洁地展示你的 Notebook,看看怎么使用它!地址:http://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb

另一个提示!当你想创建演示文稿时,首先想到的工具是 PowerPoint 和 Google Slides。其实你的 Jupyter Notebooks 也可以创建幻灯片!还记得我说它超级灵活吗?我一点都没有夸大。 要将你的 Notebooks 转换为幻灯片,请转到  View -> Cell Toolbar,然后单击 Slideshow。看!现在,每个代码块都在右侧显示一个 Slide Type 的下拉选项。它提供了以下 5 个选项: 好好试一试每一个选项以更好地理解它,它会改变你呈现你的代码的方式! 结语 请注意,这篇文章并没有详尽列出 Jupyter Notebooks 提供的所有功能。还有更多的功能等着你在使用中挖掘。和其他很多事情一样,关键在于实践。

jupyter notebook20个使用技巧

结构和风格的重要性在编码世界中从未如此明显。在Jupyter笔记本中通过自定义布局、颜色和单元格样式为你的代码添加维度是非常容易的,这将确保你的辛勤工作是值得注意的、引人注目的和令人难忘的。这些方法将使你的笔记本的界面、标记和编码单元发生蜕变。这些方便的演示技巧将确保你的下一个项目在视觉上有吸引力,有条不紊,非同一般。 在进一步说明之前,让我们深入了解一下吧!

1、整体界面-Jupyter主题

安装Jupyterthemes

!pip install jupyterthemes

!pip install –upgrade jupyterthemes

仔细阅读可用的主题清单

!jt -l<br />

应用你选择的主题

!jt -t <主题名称><br />

我在下面展示了所有可用的Jupyter笔记本主题。

所有可用的Jupyter笔记本主题

: 第一次可能需要重新启动Jupyter笔记本来激活主题,之后只需运行代码 jt -t <themes>,点击shift+enter并重新加载笔记本就可以了。

重置为默认主题

!jt -r<br />

2、Markdown

首先,什么是Markdown?
Markdown是一种用于格式化文档的人类可读语言。我们可以把它的效用比作微软Word主功能区下的文本格式化工具。粗体、斜体、标题、字体大小、缩进、字体颜色、创建列表等等

Microsoft Word – 主页功能区

Jupyter笔记本允许我们在一个文件中结合markdown文本和代码,以产生更好的文件化工作流程。这种markdown允许你使用原始HTML来操作文本格式。

就像蟹皇堡的汉堡包一样,markdown文本往往被封闭在开放和封闭的HTML标签之间

要将Jupyter笔记本的代码单元转换为markdown,只需在单元内点击Esc+m。

a. 标题

# HEADING<br /> ## HEADING<br /> ### HEADING<br /> #### HEADING<br />

渲染后的输出。

注意:确保在 “#”和你的标记文本之间有一个空格,否则标记文本将不能正确显示。

b. 粗体

**Bold Text**<br />

渲染后的输出。

c.斜体字

*Italicized text*<br />

渲染后的输出。

补充:如果你希望你的文本是斜体和粗体,请将你的文本笼罩在六个星号之间,如下所示。
***Bold and Italicized Text***<br />

渲染后的输出。

d. 对齐

默认情况下,Jupyter Notebooks文本是左对齐的。

右对齐

为了使文本右对齐,我们将文本包围在一个开放和关闭的p标签和一个内联的 CSS “样式” 属性之间。
<p style='text-align: right'> **Your Right Aligned Text** </p><br />

渲染后的输出。

中心化

要使文本居中,我们只需将文本包围在中心标签之间。
<center> **Your Centered Text** </center><br />

渲染后的输出。

e.突出显示文本

为了突出显示文本,我们将文本包围在一个开放和关闭的标记标签之间。
<mark>highlight text</mark><br />

渲染后的输出。

f.背景颜色

# <div style = 'background-color:skyblue'> <center> TEXT WITH BACKGROUND COLOR </div><br />

渲染后的输出。

这里,文字也被放在了中心位置

g. 换行

添加换行符有助于将你的文件分成若干部分,使其结构化
---<br />

渲染后的输出。

此外,换行符也可以与其他HTML标签一起使用,以加强格式化,如下所示。

h.警示短信

警报是我最喜欢的markdown格式化语法,因为它们可以立即使嵌入其中的任何编码笔记本变得生动起来有4种方法可以将HTML警报样式应用到你的markdown中。
#Blue Background<br /> <div class="alert alert-info"> Example text highlighted in blue background </div><br /> #Green Background<br /> <div class="alert alert-success">Example text highlighted in green background.</div><br /> #Yellow Background<br /> <div class="alert alert-warning">Example text highlighted in yellow background.</div><br /> #Red Background<br /> <div class="alert alert-danger">Example text highlighted in red background.</div><br />

注意:由于红色往往带有负面的含义,在专业场合避免使用红色背景,除非你想突出负面的趋势或观察。
渲染后的输出。

i.下划线

为了给markdown文本加下划线,我们使用开放和关闭u标签
<u> Underlined Text </u><br />

渲染后的输出。

j. 字体颜色

Markdown文本的颜色可以通过HTML字体标签来改变。
<font color='maroon'>Maroon colored Text </font><br />

注意:你也可以使用十六进制颜色代码来代替颜色名称。请查看https://redketchup.io/color-picker,以玩转不同的色调!

k. 符号

虽然我们可以在markdown中编码的符号的选项是无限的,但让我们来探索一些箭头符号
注:被用作文本中断标签。
 Bullet point one</br><br />  Bullet point two</br><br />  Bullet point three</br><br />  Bullet point four</br><br />  Bullet point five</br><br />  Bullet point six</br><br />  Bullet point seven</br><br />  Bullet point eight</br><br />

渲染后的输出。

l. 字体的风格

查看https://tools.picsart.com/text/font-generator/,了解可以复制和粘贴到Jupyter笔记本Markdowns的字体。
# 𝕋𝕙𝕚𝕤 𝕤𝕥𝕙𝕖 𝔻𝕠𝕦𝕓𝕝𝕖𝕊𝕥𝕣𝕦𝕔𝕜 𝕗𝕠𝕟𝕥 𝕤𝕥𝕪𝕝𝕖<br />

m. 缩进

> Text that will be indented upon rendering<br />

渲染后的输出。

n. 列表

有序列表

## List Title<br /> 1. First bullet point<br /> 2. Second bullet point </br><br />     (i) Subpoint 1 </br><br />     (ii) Subpoint 2<br /> 3. Third bullet point<br />

无序列表

## List Title<br /> - First bullet point<br /> - Second bullet point<br /> - Third bullet point<br />

渲染后的输出。

3、代码单元格

信不信由你,它也可以在Python打印语句中对代码进行格式化。这样做,完全改变了你的代码的表现形式,使它更容易理解和吸引人。
当你第一次看到这些HTML标签时不要惊慌–我们将多次使用它,它很快就会成为你的第二天性。

a.粗体字

print('3[1;3m This is bold3[0m')<br />

渲染后的输出。

普通文本与加粗文本

我们再仔细分析一下打印语句中的代码。

请注意,开始和结束标签都必须在开始时包含一个/033。
对于b和c部分:我们可以完全忽略结束标签,因为它在整个过程中保持不变。相反,我们将篡改起始标签中的数字,以解锁非常有趣的格式化选项。

b.代码颜色

(i) 有色文本

print('3[31;3m This is red3[0m')<br /> print('3[32;3m This is green3[0m')<br /> print('3[33;3m This is yellow3[0m')<br /> print('3[34;3m This is blue3[0m')<br /> print('3[35;3m This is pink3[0m')<br /> print('3[36;3m This is skyblue3[0m')<br /> print('3[37;3m This is grey3[0m')<br />

渲染后的输出。

(ii)黑体字的文字

print('3[1;31m This is bold red 3[0m')<br /> print('3[1;32m This is bold green3[0m')<br /> print('3[1;33m This is bold yellow3[0m')<br /> print('3[1;34m This is bold blue3[0m')<br /> print('3[1;35m This is bold purple3[0m')<br /> print('3[1;36m This is bold teal3[0m')<br /> print('3[1;37m This is bold grey3[0m')<br />

渲染后的输出。

c.背景颜色

print('3[1;40mBlack background - Bold text3[0m')<br /> print('3[1;41mRed background - Bold text3[0m')<br /> print('3[1;42mGreen background - Bold text3[0m')<br /> print('3[1;43mYellow background - Bold text3[0m')<br /> print('3[1;44mBlue background - Bold text3[0m')<br /> print('3[1;45mPink background - Bold text3[0m')<br /> print('3[1;46mLight Blue background - Bold text3[0m')<br /> print('3[1;47mLight Grey background - Bold text3[0m')<br />

4、总结

只写代码,不做造型,使杰克成为一个无趣的程序员!
如果你觉得这篇文章很有用,那么一定要按下拍手按钮,与你的朋友和同事分享这个蟹皇堡的秘密编码配方。

jupyter网址入口

https://jupyter.org/

小编发现jupyter网站非常受用户欢迎,请访问jupyter网址入口试用。


收录说明:
1、本网页并非 jupyter 官网网址页面,此页面内容编录于互联网,只作展示之用;2、如果有与 jupyter 相关业务事宜,请访问其网站并获取联系方式;3、本站与 jupyter 无任何关系,对于 jupyter 网站中的信息,请用户谨慎辨识其真伪。4、本站收录 jupyter 时,此站内容访问正常,如遇跳转非法网站,有可能此网站被非法入侵或者已更换新网址,导致旧网址被非法使用,5、如果你是网站站长或者负责人,不想被收录请邮件删除:i-hu#Foxmail.com (#换@)

前往AI网址导航

声明:本文来自投稿,不代表微浪网立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

2023-12-27

2023-12-27

古风汉服美女图集
扫一扫二维码分享