自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zorro_z的博客

一个从没有写过博客的程序猿

  • 博客(90)
  • 收藏
  • 关注

原创 ThinkPHP8学习篇(二):路由

ThinkPHP 支持传统的 MVC(Model-View-Controller)模式以及流行的 MVVM(Model-View-ViewModel)模式的应用开发,请求流程:路由 → 控制器 → 模型(DB操作) → 视图渲染。所以接下来 ThinkPHP 的学习核心内容将集中在路由、控制器、模型与数据库操作、视图与模板这四个核心内容上。本篇文章将记录ThinkPHP路由的学习过程。

2025-08-10 12:05:32 829

原创 ThinkPHP8学习篇(一):安装与配置

ThinkPHP有非常多的功能库,我的学习策略很明确:不贪多求全,只掌握最核心的20%功能,解决80%的业务需求。所有学习都围绕一个目标:够用就行。遇到复杂问题时,再具体学习对应的内容。作为ThinkPHP学习的第一篇文章,本篇文章将记录ThinkPHP基础内容的学习,包括:安装、目录结构与配置。

2025-08-03 11:45:29 742

原创 PHP语法高级篇(七):MySQL数据库

Web编程不可避免的需要使用到数据库,而MySQL数据库使用的非常多,并且是LAMP(Linux+Apache+MySQL+PHP)的技术栈的核心组合。本篇文章将记录PHP操作MySQL的学习过程。

2025-07-30 17:55:22 824

原创 PHP语法高级篇(六):面向对象编程

在PHP开发中,面向对象编程是构建可维护、可扩展系统的核心支柱。它通过封装业务逻辑、实现多态复用,大幅提升代码组织性与模块化程度——这对快速迭代的小型项目尤为重要。作为具备Java经验的开发者,早已理解了封装、继承、多态的价值。所以,本篇文章不讨论OOP理论,只聚焦一个目标:用最短时间掌握PHP实现面向对象的语法。

2025-07-26 17:55:42 1031

原创 PHP语法高级篇(五):回调函数与异常处理

在 PHP 编程中,回调函数与异常处理是提升代码灵活性与健壮性的关键技术。回调函数能极大增强代码的复用性与扩展性;而异常处理则帮助开发者捕获并妥善处理运行时错误,避免程序意外崩溃。本篇文章将记录过回调函数与异常处理的学习过程。

2025-07-23 17:46:56 1088

原创 PHP语法高级篇(四):过滤器与JSON

在开发中,处理外部输入与实现前后端数据交互是绕不开的核心环节。过滤器能帮我们有效验证和清理来自表单等外部的输入数据,确保数据安全可靠;而 JSON 作为前后端分离架构中数据交换的 “通用语言”,其在 PHP 中的处理方式更是开发者必须掌握的技能。本篇文章将记录过滤器与 JSON 的学习过程。

2025-07-18 17:47:08 675

原创 PHP语法高级篇(三):Cookie与会话

Cookie与会话在 Web 编程中十分实用:Cookie 能实现一周免登录,还能记住用户的主题偏好;会话可保存当前用户信息,也能临时存储购物车数据。本篇文章将记录Cookie与会话的学习过程。

2025-07-15 18:18:07 1009

原创 PHP语法高级篇(二):文件处理

文件处理是任何 Web 应用程序的重要组成部分,PHP 拥有用于创建、读取、上传和编辑文件的多个函数。本篇文章将记录文件处理的学习过程。

2025-07-13 18:24:13 1073

原创 PHP语法高级篇(一):日期时间处理和包含文件

从本篇文章开始,将学习PHP的高级特性内容。本篇文章将记录在PHP中如何进行日期时间处理和包含文件的学习过程。

2025-07-09 18:30:00 701

原创 PHP语法基础篇(九):正则表达式

正则表达式在开发中是会经常使用到的,最常见的就是对数据进行有效性验证。比如:身份证号码有效性验证、手机号码有效性验证等。本篇文章将记录在PHP中使用正则表达式的学习过程。

2025-07-05 18:36:00 905

原创 PHP语法基础篇(八):超全局变量

超全局变量是在 PHP 4.1.0 中引入的,并且是内置变量,可以在所有作用域中始终可用。PHP 中的许多预定义变量都是"超全局的",这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

2025-07-03 18:30:00 858

原创 PHP语法基础篇(七):函数

PHP 拥有超过 1000 个内置函数,此外,还可以创建自己的自定义函数。函数是程序中可以重复使用的一组语句块。页面加载时,函数不会自动执行。函数将通过调用函数来执行。本篇文章将记录自定义函数的学习过程。

2025-06-30 18:32:43 848

原创 PHP语法基础篇(六):数组

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。本篇文章将记录数组的学习过程。

2025-06-27 19:40:27 697

原创 PHP语法基础篇(五):流程控制

任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句)。语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。本篇文章将记录流程控制的学习过程。

2025-06-21 19:23:14 692

原创 PHP语法基础篇(四):运算符

本文介绍了PHP中的各类运算符及其用法,主要包括:算术运算符(+ - * / %等)、赋值运算符(= += -=等)、比较运算符(== === !=等)、递增/递减运算符(++ --)、逻辑运算符(&& || !等)、位运算符(& | ^ ~等)、字符串运算符(. .=)、数组运算符(+ == ===等)和条件赋值运算符(?: ??)。文章详细说明了每种运算符的功能和使用场景,包括一元、二元和三元运算符的区别,以及运算符优先级和结合性的概念。特别强调了赋值运算符的传值和引用赋值区别,

2025-06-18 18:43:31 842

原创 PHP语法基础篇(三):类型转换与常量

"在完成PHP输出函数和字符串操作的学习后,本篇笔记将记录类型转换和常量应用的学习过程。作为语法基础篇的第三部分,我重点关注:类型转换数学函数常量定义:define() 与const 的使用差异魔术常量应用:__LINE__ 等特殊常量

2025-06-16 20:41:01 949

原创 PHP语法基础篇(二):输出函数与字符串操作

"继上篇《PHP语法基础篇:变量与数据类型入》之后,本文将继续记录基础语法学习过程。本次重点探索两个核心内容:输出方式实践:对比 echo 与 print 的使用差异字符串操作初探:通过代码实验理解引号解析规则和基础处理方法作为学习笔记,文中所有结论均基于当前测试结果整理,欢迎共同探讨。"

2025-06-13 20:09:38 863

原创 PHP语法基础篇:变量与数据类型

"本文是PHP语法学习的第一篇,将聚焦最基础的三个部分:基本语法结构:PHP文件格式、注释写法变量使用:变量声明、命名规范、作用域初探数据类型:整型、浮点型、字符串、布尔型等数据类型的特性和用法通过代码示例,帮助零基础开发者快速建立PHP语法认知框架。"

2025-06-11 20:41:48 1037

原创 PHP环境极速搭建

作为一名初次接触PHP的开发者,我深知环境配置往往是学习路上的第一道门槛。传统PHP环境搭建需要手动配置Apache/Nginx、PHP解释器、MySQL等多重组件,光是处理版本兼容性和依赖问题就可能耗费半天时间——这对于我们小公司急需快速产出原型的场景来说,简直是效率杀手。

2025-06-08 20:34:58 1141

原创 启程:为何选择PHP?

Java开发者转学PHP的实战笔记:小公司如何用ThinkPHP快速交付项目 作为小公司Java开发者,作者面临技术选型困境:SpringBoot的复杂架构常与中小项目需求不匹配。为解决原型开发效率问题,作者决定从零学习PHP+ThinkPHP组合。文章分享了这一转型的学习路径:从PHP8基础语法到ThinkPHP8框架核心概念,最终通过极简博客系统实战验证开发效率。作者强调真实记录学习过程,包括ORM配置、用户认证等常见难点,旨在将原型交付周期从3周压缩至10天。该系列既是个人学习日记。

2025-06-07 12:17:23 1133 1

原创 Python项目工坊|仿Windows记事本

通过本项目的完整开发流程,新手可以掌握:Tkinter组件布局与事件绑定文件读写与异常处理机制GUI状态管理核心技巧✔️ 还原经典文本编辑功能✔️ 实现标准的文件操作流程✔️ 掌握GUI程序的生命周期管理。

2025-04-26 11:00:37 342

原创 Python项目工坊|用代码实现《人机对战五子棋》

本系列将不定期分享原创Python实用项目,包含完整代码及实现说明,涵盖多种应用场景。如果你是刚学完语法却不知如何实践的新手,或想拓展项目经验的中级开发者,这里或许能为你提供灵感和参考模板。欢迎评论区或私信交流讨论,代码与思路皆可复用,一起精进技术。

2025-04-20 10:51:12 476

原创 Python项目工坊|用代码实现《学生管理》软件

本系列将不定期分享原创Python实用项目,包含完整代码及实现说明,涵盖多种应用场景。如果你是刚学完语法却不知如何实践的新手,或想拓展项目经验的中级开发者,这里或许能为你提供灵感和参考模板。欢迎评论区或私信交流讨论,代码与思路皆可复用,一起精进技术。

2025-04-18 21:38:48 657

原创 总看别人写贪吃蛇,自己也来写一个吧

可是每当有时间的时候,看一些练手项目的时候大概率会看到贪吃蛇这个游戏,然后就会看到各路大神编写的代码,有100多行完成的,有200多行完成的,还有14行就完成的,就感觉挺厉害的。反正14行我是搞不定的,估计200行左右还是可能的。这个游戏可谓是非常的简单,容易上手,所以直到现在,还能看到它的身影。大多数学习编程的同学在学习编程语言后,也都会想着写一个自己的游戏,可能大部分同学也是抱着这样的想法开始学习的编程,那么简单的贪吃蛇游戏就成了很好的练手项目,所以可以在网上看到很多各种编程语言的贪吃蛇游戏代码。

2024-10-13 20:36:15 408

原创 Flask框架——调试模式与HTML转义处理

为了方便我们开发,Flask框架为我们提供了调试模式,使用该模式启动开发服务器后,错误会直接在页面中体现,并且可以在页面中使用交互式调试器,方便我们进行调试,再调试成功后,再更改代码、保存,验证结果就可以了。访问 /escape,并没有出现预想中的 “Hello, ”,而是弹出了一个对话框,那是因为返回的字符串是以HTML形式进行相应的,如果我们不对HTML进行转移,那么其中嵌入的可执行的 JavaScript 脚本将会被浏览器执行,这将会对我们程序的安全性造成威胁。所以我们需要对HTML进行转义处理。

2024-04-17 12:00:00 925

原创 Flask框架——安装与第一个应用

Flask是一个轻量级的Python Web框架。它是一个微型框架,具有灵活性和可扩展性。Flask使用Python语言编写,它是一个开源框架,使得它可以自由地使用和修改。Flask框架可以用于构建任何类型的Web应用程序,包括单页面应用程序、企业应用程序、博客、社交媒体应用程序等。

2024-04-15 12:00:00 519

原创 Redis的事务

Redis 中的事务(transaction)是一组命令的集合。事务同命令一样都是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执行。

2024-04-12 12:00:00 836

原创 Redis的数据类型

Redis 有5种主要的数据类型,这5种数据类型分别是:string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。本文将介绍这5种数据类型及相应的命令。

2024-04-11 12:00:00 1183

原创 Linux命令行学习之操作文件和目录

一个符号链接指向一个文件,而且这个符号链接本身与其它的符号链接几乎没有区别。然而,当你删除一个符号链接时,只有这个链接被删除,而不是文件本身。不像符号链接,当你列出一个包含硬链接的目录内容时,你会看到没有特殊的链接指示说明。当一个硬链接被删除时,这个链接被删除,但是文件本身的内容仍然存在(这是说,它所占的磁盘空间不会被重新分配),直到所有关联这个文件的链接都删除掉。符号链接生效,是通过创建一个特殊类型的文件,这个文件包含了一个关联文件或目录的文本指针。每个文件默认会有一个硬链接,这个硬链接给予文件名字。

2024-03-16 18:00:00 925

原创 Linux命令行学习之ls命令

ls命令可能是Linux用户最常用的命令了。通过它,我们可以知道目录的内容,以及各种各样重要文件和目录的属性。

2024-03-14 12:00:00 782

原创 Django框架(八)编写第一个Django应用程序——第七部分

如果你在这个窗口中添加了一个问题,然后点击“保存”,Django会将这个问题保存到数据库中,并动态地将它添加到你正在查看的“添加选项”表单中。显然,在每个管理页面的顶部放置“Django管理”是不合适的,它只是占位符文本,应用程序管理页面应该显示该应用程序的名称,你可以使用Django的模板系统来改变它。对于只有两个字段的管理表单来说,这并不令人印象深刻,但是对于具有数十个字段的管理表单来说,选择直观的顺序是一个重要的可用性细节。在该表单中,“Question”字段是一个选择框,包含数据库中的每个问题。

2024-02-09 12:00:00 1007

原创 Django框架(七)编写第一个Django应用程序——第六部分

Django会选择它找到的第一个名称匹配的静态文件,如果你在不同的应用程序中有一个同名的静态文件,Django将无法区分它们。然而,在更大的项目中——尤其是那些由多个应用程序组成的项目——处理每个应用程序提供的多组静态文件就不是那么容易的了。除了服务器生成的HTML之外,web应用程序通常还需要提供额外的文件——比如图像、JavaScript或CSS——以呈现完整的web页面。,它的作用是:将来自每个应用程序(以及你指定的任何其它位置)的静态文件集中到一个可以在生产环境中轻松提供服务的位置。

2024-02-07 12:00:00 2517

原创 Django框架(六)编写第一个Django应用程序——第五部分

有时候,把自己从富有成效的、创造性的编程工作中抽离出来,去编写乏味的测试工作,这似乎是一件苦差事,尤其是当你知道自己的代码能够正常运行时;我们的测试正在失控,按照这个速度,我们测试的代码将会很快超过应用程序中的代码,并且有些还是重复的。我们的应用程序运行良好,然而,用户有可能不通过页面访问来做各种页面操作,而是找到了或猜到了执行程序的URL,那么他们就可以直接访问到应用程序,而绕过页面的一些校验。不管怎样说,测试的越多,覆盖面越广,那么我们的程序也将会越健壮,所以不要担心测试代码太多的问题。

2024-02-05 12:00:00 2597

原创 Django框架(五)编写第一个Django应用程序——第四部分

这些视图基本代表了Web开发的常见情况:根据URL中传递的参数从数据库中获取数据,然后加载模板并返回呈现的模板。我们还为结果视图指定了模板名称——这确保了结果视图和详细信息视图在呈现时具有不同的外观,即使它们使用的都是。让我们将投票应用程序转换为使用泛型视图系统,这样我们就可以删除一些我们自己写的代码。作为一种替代方法,可以修改模板来匹配新的默认上下文变量——但是告诉Django使用想要的变量要容易得多。视图几乎完全相同,唯一的区别是模板名,稍后我们将解决这样的冗余问题。视图将重定向到该问题的结果页面。

2024-02-03 12:00:00 936

原创 Django框架(四)编写第一个Django应用程序——第三部分

如果在不同的应用程序中存在相同名称的模板,Django将无法区分它们,Django将会选择它找到的第一个名称匹配的模板,这显然不是我们想要的。函数使用request对象作为它的第一个参数,模板名称作为它的第二个参数,传递数据的字典作为它的第三个参数,该参数是可选的。这种使用硬编码方式的问题在于耦合度紧密,如果要修改项目中的URL,那么模板越多,修改起来就越麻烦,还有可能有漏掉没有修改的情况。对象,如果未找到该对象,它将尝试查找该视图中是否有该名称的属性,如果属性查找失败了,它就会尝试在列表索引中查找。

2024-02-01 12:00:00 971

原创 Django框架(三)编写第一个Django应用程序——第二部分

本文接上篇文章的第一部分。本部分将会进行数据库设置,创建我们的第一个模型(Model),并快速了解Django自动生成的管理站点。

2024-01-30 12:36:53 998

原创 Django框架(二)编写第一个Django应用程序——第一部分

​Django官方网站提供的文档中包含一个编写Django的应用程序教程(文档地址:Writing your first Django app, part 1 | Django documentation | Django),本文接下来将会以此为例进行记录说明如何编写一个Django应用程序。

2024-01-28 19:34:00 1030

原创 Django框架(一)安装与创建项目

Django是一个高级Python Web框架,它鼓励快速开发和简洁、实用的设计。它由经验丰富的开发人员构建,解决了Web开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开源的。

2024-01-27 21:05:58 996

原创 《ORANGE’S:一个操作系统的实现》读书笔记(三十八)尾声(三)

这里需要说明一下,本篇文章记录的内容主要是将书上的内容记录下来了,因为我在虚拟机中操作并没有成功,不知道是不是时间原因书中的有些代码和现在的Linux操作系统无法配合,从网上也没有找到具体的操作方法,所以就先把它记录下来,希望可以和大家一起探讨。安装Linux这里就不再进行说明了,发行版很多,选择一个你喜欢的就可以,不过在安装的时候选择尽量少的组件,只要能保证可以正常编译我们的源代码就可以了。先从软盘启动,之后重启,就可以从硬盘启动了,待出现grub画面时,选择Orange’S,回车,系统就启动起来了。

2024-01-26 21:02:14 484

原创 《ORANGE’S:一个操作系统的实现》读书笔记(三十八)尾声(二)

而书上使用的0.97版本已经弃用了,GRUB(0.9.x)名称被改为了GRUB Legacy,所以按照书上的操作,我们需要安装GRUB Legacy,不同的Linux安装方式不同,我这里以Ubuntu为例进行说明(如果Linux是运行在虚拟机中,最好做一个快照,这样如果GRUB冲突也好恢复)。在第3步和第5步中,对于软盘启动,代码将在软盘中寻找loader.bin和kernel.bin,对于硬盘启动,我们需要让引导扇区代码从硬盘中寻找loader.bin并让loader从硬盘中寻找kernel.bin。

2024-01-25 18:43:47 1310

《ORANGE’S:一个操作系统的实现》读书笔记(三十八)尾声(二)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十八)尾声(二)文章代码

2024-01-25

《ORANGE’S:一个操作系统的实现》读书笔记(三十七)尾声(一)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十七)尾声(一)文章代码

2024-01-23

《ORANGE’S:一个操作系统的实现》读书笔记(三十六)内存管理(四)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十六)内存管理(四)文章代码

2024-01-22

《ORANGE’S:一个操作系统的实现》读书笔记(三十五)内存管理(三)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十五)内存管理(三)文章代码

2024-01-21

《ORANGE’S:一个操作系统的实现》读书笔记(三十四)内存管理(二)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十四)内存管理(二)文章代码

2024-01-19

《ORANGE’S:一个操作系统的实现》读书笔记(三十三)内存管理(一)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十三)内存管理(一)文章代码

2024-01-18

《ORANGE’S:一个操作系统的实现》读书笔记(三十二)文件系统(七)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十二)文件系统(七)文章代码

2024-01-17

《ORANGE’S:一个操作系统的实现》读书笔记(三十一)文件系统(六)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十一)文件系统(六)文章代码

2024-01-15

《ORANGE’S:一个操作系统的实现》读书笔记(三十)文件系统(五)文件代码

《ORANGE’S:一个操作系统的实现》读书笔记(三十)文件系统(五)文件代码

2024-01-14

《ORANGE’S:一个操作系统的实现》读书笔记(二十九)文件系统(四)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十九)文件系统(四)文章代码

2024-01-13

《ORANGE’S:一个操作系统的实现》读书笔记(二十八)文件系统(三)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十八)文件系统(三)文章代码

2024-01-11

《ORANGE’S:一个操作系统的实现》读书笔记(二十七)文件系统(二)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十七)文件系统(二)文章代码

2024-01-10

《ORANGE’S:一个操作系统的实现》读书笔记(二十六)文件系统(一)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十六)文件系统(一)文章代码

2024-01-08

《ORANGE’S:一个操作系统的实现》读书笔记(二十五)进程间通信(三)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十五)进程间通信(三)文章代码

2024-01-07

《ORANGE’S:一个操作系统的实现》读书笔记(二十四)进程间通信(二)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十四)进程间通信(二)文章代码

2024-01-05

《ORANGE’S:一个操作系统的实现》读书笔记(二十二)输入输出系统(四)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十二)输入输出系统(四)文章代码

2024-01-03

《ORANGE’S:一个操作系统的实现》读书笔记(二十一)输入输出系统(三)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十一)输入输出系统(三)文章代码

2024-01-02

《ORANGE’S:一个操作系统的实现》读书笔记(二十)输入输出系统(二)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(二十)输入输出系统(二)文章代码

2024-01-01

《ORANGE’S:一个操作系统的实现》读书笔记(十九)输入输出系统(一)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(十九)输入输出系统(一)文章代码

2024-01-01

《ORANGE’S:一个操作系统的实现》读书笔记(十八)进程(六)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(十八)进程(六)文章代码

2023-12-30

《ORANGE’S:一个操作系统的实现》读书笔记(十七)进程(五)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(十七)进程(五)文章代码

2023-12-29

《ORANGE’S:一个操作系统的实现》读书笔记(十六)进程(四)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(十六)进程(四)文章代码

2023-12-28

《ORANGE’S:一个操作系统的实现》读书笔记(十五)进程(三)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(十五)进程(三)文章代码

2023-12-27

《ORANGE’S:一个操作系统的实现》读书笔记(十四)进程(二)文章代码

《ORANGE’S:一个操作系统的实现》读书笔记(十四)进程(二)文章代码

2023-12-26

《ORANGE’S:一个操作系统的实现》读书笔记(十三)进程(一)代码

《ORANGE’S:一个操作系统的实现》读书笔记(十三)进程(一)代码

2023-12-25

本篇文章代码,用于在阅读过程进行参考实验

本篇文章代码,用于在阅读过程进行参考实验

2023-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除