- Percona-toolkit工具详解
小一_d28d
1.pt工具安装[root@master~]#yuminstall-ypercona-toolkit-3.1.0-2.el7.x86_64.rpm2.常用工具使用介绍2.1pt-archiver归档表#重要参数--limit100每次取100行数据用pt-archive处理--txn-size100设置100行为一个事务提交一次,--where'id>/root/db/checksum.logpt
- Python合成gif动图
北山杉林
python开发语言
这里主要用到一个库:imageioimportosimportimageiofig_path="path_to_figure/"all_file=os.listdir(home_path)all_file.sort()images=[]foriinall_file:file_name=os.path.join(fig_path,i)img=imageio.imread(file_name)imag
- OceanBase:在win11 wsl下的Ubuntu中的安装OceanBase Docker版
赵大土
OceanBasedocker
在win11wsl下的Ubuntu中的安装OceanBaseDocker版1.在win11中启用wsl并安装Ubuntu2.在Ubuntu中安装Docker3.在Docker中安装OceanBase1.在win11中启用wsl并安装Ubuntu鼠标右键点击win图标,选择【Windows终端(管理员)】,输入一下命令,等待安装后重启系统wsl--install注意:这个命令默认会将会将wsl2设置
- 即学即用的30个python常用代码
落难Coder
Pythonpython
1.检查重复元素下面的方法可以检查给定列表中是否有重复的元素。它使用了set()属性,该属性将会从列表中删除重复的元素。defall_unique(lst):returnlen(lst)==len(set(lst))x=[1,1,2,2,3,2,3,4,5,6]y=[1,2,3,4,5]all_unique(x)#Falseall_unique(y)#True2.变位词检测两个字符串是否互为变位词
- Pyecharts可视化数据大屏
七夜zippoe
大数据大数据
Pyecharts是一个非常强大的Python数据可视化库,它可以用来创建各种图表,并通过配置参数将这些图表组合成数据大屏。以下是创建一个简单的数据大屏的步骤和示例代码。1.安装pyecharts首先,你需要安装pyecharts:pipinstallpyecharts2.创建图表使用pyecharts创建多个图表,如柱状图、折线图等。下面是一些示例:frompyecharts.chartsimp
- python安装virtual虚拟环境
LookUpMan
python
本文参考:https://www.cnblogs.com/guishou/p/7134386.html1.安装pipinstallvirtualenv2.创建虚拟环境virtualenv-pc:\python3\python.exevenvc:\python3\python.exe为指定python解释器的路径3.激活虚拟环境首先进入创建的虚拟环境下目录中的scripts中cdvenv/scrip
- (代码可运行)Bootstrap框架的HTML示例
程序员大侠
前端CSShtmlbootstrap前端
Bootstrap:一套流行的前端开发框架,基于HTML、CSS和JavaScript,适用于快速构建响应式Web应用。以下是一个使用Bootstrap构建的简单响应式Web应用的HTML示例:BootstrapExampleHello,Bootstrap!CardtitleSomequickexampletexttobuildonthecardtitleandmakeupthebulkofthe
- 【已解决】torch包下载缓慢
烟花节
已解决pytorch深度学习pythonpip
方法一直接将PyTorch安装指引中的https://download.pytorch.org/whl替换为https://mirrors.aliyun.com/pytorch-wheels即可。这个是阿里云的镜像,如pip3installtorchtorchvisiontorchaudio--index-urlhttps://download.pytorch.org/whl/cu121改为这个,
- 【已解决】onnx无法找到CUDA的路径
烟花节
已解决人工智能深度学习pythonpip
报错RuntimeError:D:\a\_work\1\s\onnxruntime\python\onnxruntime_pybind_state.cc:857onnxruntime::python::CreateExecutionProviderInstanceCUDA_PATHissetbutCUDAwasntabletobeloaded.Pleaseinstallthecorrectvers
- linux系统下PostgreSQL的使用
敲代码的雪糕
linuxlinuxpostgresql运维
文章目录前言一、安装pgsql数据库二、安装c和c++驱动三、使用1、头文件2、源文件3、main文件4、编译前言最近工作中使用到了pgsql,主要是使用其c++驱动完成数据库创建及增删改查等操作…一、安装pgsql数据库使用命令如下:sudoapt-getinstallpostgresql安装完成,使用如下命令,确认数据库版本:psql--version二、安装c和c++驱动使用如下命令安装c驱
- 2022-08-22(listening)
Catholi_costudy
Vocabularyradiationn.辐射,放射线linguisticallyad.语言地,语言学方面dispersaln.分散,传播,散布,疏散ancestryn.祖先,血统,世系,演化plentifullyad.丰富地,富裕地sweatn.汗水,汗液,一身汗v.流汗,出汗,冒汗vigorouslyad.精神旺盛地,有力地,活泼地protectorn.保护器,保护者nakeda.裸露的,无遮
- 《经验分享:Ubuntu 22.04 安装微信》
陈在天box
ubuntulinux运维
一、引言在Ubuntu22.04系统中,虽然有很多优秀的开源软件可供使用,但对于一些习惯了使用微信进行沟通和办公的用户来说,能够在Ubuntu上安装微信是非常必要的。本文将分享在Ubuntu22.04上安装微信的方法,希望能帮助到有需要的人。二、安装方法方法一:通过Snap安装打开终端。检查Snap是否已经安装,如果没有安装,可以使用以下命令进行安装:sudoaptinstallsnapd安装微信
- Python的Pillow(图像处理库)非常详细的学习笔记
深蓝海拓
机器视觉pillow学习笔记pillow计算机视觉python图像处理
Python的Pillow库是一个非常强大的图像处理库。安装Pillow库:在终端或命令行中输入以下命令来安装Pillow:pipinstallpillow安装后查看是否安装成功以及当前版本pipshowPillow升级库:pipinstallpillow--upgrade 一些基础的应用1、图像文件方面的:打开文件1)直接打开文件:这种方式是最常见的直接打开图片文件的方法,以文件路径作为参数,P
- Python+requests+pytest+openpyxl+allure+loguru框架详解
乐瓜乐虫
pythonpytest
一、框架目录结构1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言数据库断言前置sql等方法;2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文件数据图片数据等;3)testcases目录用来存放测试用例,一个python文件对应一个接口模块的测试用例,不同接口分别别多个不同的python文件;4)outputs里有reports和logs
- 【软考】希尔排序算法分析
王佑辉
软考算法算法软考
目录1.c代码2.运行截图3.运行解析1.c代码#include#includevoidshellSort(intdata[],intn){//划分的数组,例如8个数则为[4,2,1]int*delta;intk;//i控制delta的轮次inti;//临时变量,换值inttemp;intdk;intj;k=n;delta=(int*)malloc(sizeof(int)*(n/2));i=0;d
- 微信防撤回插件 - WeChatIntercept,让信息不再稍纵即逝!
毕艾琳
微信防撤回插件-WeChatIntercept,让信息不再稍纵即逝!WeChatIntercept微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信项目地址:https://gitcode.com/gh_mirrors/we/WeChatIntercept项目介绍我们很高兴向你推荐一款专为Mac用户设计的独特插件——WeChatIntercept。这个开源项目能够帮助你在微信上实现消息防
- Linux防火墙,常用的三个命令
风雪山神喵
https://blog.csdn.net/weixin_38492591/article/details/78474310关闭某个端口的防火墙firewall-cmd--zone=public--add-port=80/tcp--permanent重启防火墙,让关闭防火墙的操作生效firewall-cmd--reload查看防火墙列表信息firewall-cmd--list-all
- linux-性能优化命令
码农小伙
Linuxlinux性能优化服务器
top我们先来说说top命令用法,这个命令对于我们监控linux性能是至关重要的,我们先来看看展示结果。top-15:20:23up10min,2users,loadaverage:0.39,0.53,0.35Tasks:217total,1running,216sleeping,0stopped,0zombie%Cpu(s):0.0us,0.0sy,0.0ni,100.0id,0.0wa,0.0
- matplotlib绘图时,不出图。无明显报错
xbqztdjz
matplotlib
可能是matplotlib和numpy冲突,造成这种问题。1.卸载两个库pipuninstallmatplotlibpipuninstallnumpy2.查看anaconda环境中这两个库是否删干净了piplist若出现warning:对warning的理解是之前用命令卸载了两个包,但是这两个包没有卸载干净,在piplist列表中又出现了,这两个操作产生了冲突,就报了warning。解决办法:,进
- android 下载txt,Android 下载文件(使用OKHttp)
weixin_39942492
android下载txt
finallongstartTime=System.currentTimeMillis();OkHttpClientokHttpClient=newOkHttpClient();Requestrequest=newRequest.Builder().url(url).addHeader("Connection","close").build();okHttpClient.newCall(reque
- python贪吃蛇游戏设计答辩_python编写贪吃蛇游戏
罗-Moline
python贪吃蛇游戏设计答辩
关于编写游戏,是博主非常向往的东西(博主喜爱游戏),编写游戏得一步一步的走!今天我简单的编写一下非常经典的游戏贪吃蛇!!!!效果图:首先引入pygame模块pipinstallpygame关于编写贪吃蛇有如下几个步骤!依次思考1,设置背景大小,即游戏框大小,---像素(px)2,设置颜色,蛇的颜色,背景颜色,豆子的颜色#pygame游戏库,sys操控python运行的环境importpygame,
- linux autofs配置
crazysele
linux服务器运维
安装yuminstall-yautofs准备挂接目录mkdir/nfsdatamkdir/nfsdata/{tools,files}添加配置echo“/nfsdata/etc/auto.user”>>/etc/auto.masterecho“tools-fstype=nfs,rw,sync,no_root_squash172.23.0.187:/mnt/sdb1/tools”>>/etc/auto
- 开源IDC资产管理--racktables(一、部署)
Ping Me
IDC系统racktablesIDC系统
部署racktables安装配置lamp环境yum-yinstallhttpdphpmysqlmysql-serverphp-mysql安装apache扩展和php扩展,使其更好支持其他的软件yuminstallhttpd-manualmod_sslmod_perlmod_auth_mysql-yyuminstallphp-gdphp-snmpphp-bcmath-y下载安装racktables下
- python打包成mac可执行文件,python如何打包程序
number_516
人工智能
大家好,小编为大家解答mac系统python程序打包成exe的问题。很多人还不知道python打包成mac可执行文件,现在让我们一起来看看吧!大家好,小编为大家解答mac系统python程序打包成exe的问题。很多人还不知道python打包成mac可执行文件,现在让我们一起来看看吧!文章目录前言一、pyinstaller是什么?二、使用步骤1.安装库2.pyInstaller生成可执行程序2.1带
- Redis的incr命令引发的反序列化异常和ERR value is not an integer or out of range异常
臣妾写不来啊
Java编码技巧redis数据库缓存
在Java中使用inc命令的时候发现redis中的值被反序列化后居然不是数字,检查后发现可能是序列化器没对,在redis配置的地方将序列化器设置为Jackson2JsonRedisSerializer后使用整成,贴上代码@Bean(name="RedisTemplate")@SuppressWarnings("all")publicRedisTemplateredisTemplate(RedisC
- 大模型多机多卡脚本实例 - 增量预训练 -accelerate和deepspeed命令多机多卡训练有什么不同
AI生成曾小健
大模型/增量预训练CPT深度学习python机器学习
第一步,同步权重ls-l/data/xxx/gpu008/MoeRemake/train/etuning/LLaMA-Factory2/models/xxx-Base-10B-200k-Llama第二步,同步环境:./scp_batch.sh"/data/xxx/miniconda3/envs/etuning4/""/data/vayu/miniconda3/envs/etuning4/"gpu0
- Ubuntu 16.04安装Java JDK
一杯茶一本书
JavaJDK有两个版本,一个开源版本Openjdk,还有一个oracle官方版本jdk。下面记录在Ubuntu16.04上安装JavaJDK的步骤。安装openjdk的步骤更新软件包列表:sudoapt-getupdate安装openjdk-8-jdk:sudoapt-getinstallopenjdk-8-jdk查看java版本:java-version安装oracleJavaJDK首先,安装
- 利用 pip 安装 PyTorch 问题记录
yyywxk
#软件安装使用问题pippytorch人工智能python
目录1.pytorch源下载安装缓慢2.ERROR:HTTPerror4031.pytorch源下载安装缓慢利用pip安装pytorch时,官方源下载速度十分缓慢:pipinstalltorch==2.1.1torchvision==0.16.1torchaudio==2.1.1--index-urlhttps://download.pytorch.org/whl/cu118可以考虑换源:pipi
- 20.试译艾米莉·狄金森诗选 第一部分 生活
他不在这里
20.Itastealiquorneverbrewed,Fromtankardsscoopedinpearl;NotallthevatsupontheRhineYieldsuchanalcohol!InebriateofairamI,Anddebaucheeofdew,Reeling,throughendlesssummerdays,Frominnsofmoltenblue.Whenlandlor
- 四、使用MoveGroup C++接口——运动学(二)
阿白机器人
MoveIt2机器人运动规划c++
目录前言1.运动学插件(KinematicsPlugin)2.碰撞检测(CollisionChecking)3.碰撞对象(CollisionObjects)4.允许碰撞矩阵(AllowedCollisionMatrix,ACM)前言运动学是研究物体运动的几何属性而不涉及力或质量的科学。在机器人学中,运动学涉及到机器人的机械臂和关节如何运动。1.运动学插件(KinematicsPlugin)Move
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户