首页 文章 精选 留言 我的

精选列表

搜索[快速],共10000篇文章
优秀的个人博客,低调大师

JeeSite V4.3.2 快速开发平台发布 Apache开源协议

升级内容 菜单主题风格,激活菜单圆润风格。 主题整体美化,标准14字号,色调细节。 Tab 页签增加关闭全部功能;Tab 增加图标。 dataGrid 列表设置,选择列全选按钮放左下角。 表单组件:增加 readonly 全局只读属性,支持整个表单只读。 文件预览:如果有预览文件就预览,不管是否安装office转换服务 代码生成模板:非字符串类型默认增加 isUpdateForce 访问日志:提交前后差异数据输出结果优化 安全升级:防登录信息过长攻击 SqlMap 增加 maxJoinTableNum 选项,可设置最大联表个数(-1 为不限制,n 为 JoinTable n张表,0 为 不进行 JoinTable 查询) layer 优化 msg 弹窗,超时时间比较长的加关闭创建按钮,全屏消息的增宽显示更多内容。 Select2 组件优化,当超过设置最大选择长度时,自动关闭下拉框 如果开启租户模式,登录未设置 corpCode 的不在在线列表中显示 代码生成优化,字段类型有精度的时候也可以返回数值 BPM 待办接口增加 identityLinks 的返回。 BPM 增加取消签收 unclaim 接口 微信接口工具升级 wxjava 4.2.2.B 在线文档UI升级 knife4j 2.0.9 大屏升级,修复已知问题 升级其它依赖库 修正左树右表的情况下,没有刷新树表的表格问题 修正ie9的上传问题,因为ie9的flash不能获取md5,所以不支持秒传 修正租户模式下,相同的表单Key,不同的流程Key,时缓存串的问题 v4.2.3+ 升级方法 修改pom.xml文件中的jeesite-parent版本号为4.3.2-SNAPSHOT 如果你导入了jeesite-common源码项目,请与git上的代码进行同步 如果你导入了jeesite-module-core源码项目,请与git上的代码进行同步 如果你是跨版本升级,请注意每一个版本的升级方法,业务上有调整的地方进行修改 执行root/package.bat(sh)打包脚本,强制更新依赖即可。 新品鉴赏 TS + Vue3+ Antdv: http://vue.jeesite.com

优秀的个人博客,低调大师

ModStartCMS v2.0.0 发布,基于 Laravel 的快速开发框架

ModStart 是一个基于 Laravel 模块化的后台系统框架。基于 Apache 2.0 开源协议发布,免费且不限制商业使用。其中模块市场包含了丰富的模块,开箱即用,让开发者能够从冗长的代码中提效,对后端开发者非常友好。 v2.0.0 专注内容管理,支持一键升级 新增:支持通用动态模型管理,专注内容CMS 新增:支持后台一键升级,维护更容易 新增:MailSenderProvider邮件发送更便捷 优化:升级邮件发送判断逻辑为Provider 优化:Account页面样式优化 优化:富文本过滤增加code和pre标签 优化:富文本编辑界面和内容 修复:升级短信发送判断逻辑为Provider 修复:图片验证码一处错误 修复:页面滚动导致的富文本菜单吸附问题 修复:管理页面URL聚焦问题

优秀的个人博客,低调大师

CakePHP 4.3.0-RC4 已发布,PHP 快速开发框架

CakePHP 是一个运用了诸如 ActiveRecord、Association Data Mapping、Front Controller 和 MVC(model–view–controller) 等著名设计模式的开源 Web 框架。CakePHP 用 PHP 编写,以 Ruby on Rails 的概念为模型,并在 MIT 许可下进行分发 CakePHP 4.3 是 4.0 的 API 兼容升级版, 4.3.0-RC4 是 CakePHP 4.3 的第 4 个候选版本,现已发布了。 RC4的主要更新: 在 QueryExpression 中加入新的 CASE 表达式构造器 QueryExpression::addCase() 已被弃用 关联 subquery 策略的载入记录:如果查询中不包括 ORDER BY ,就不再包含 LIMIT 子句 CakePHP 对 league/container 的依赖会跟^4.x冲突,这可能导致实现 ServiceProvider 时出现类型错误 新的fixture 系统对 API 接口和性能都进行了优化,这些改动可能不兼容上个版本的应用。 把 'lenses' 的单数形式修正为 'lens' 更新公告:https://github.com/cakephp/cakephp/releases/tag/4.3.0-RC4

优秀的个人博客,低调大师

用Python快速将任意文件转为PDF

**痛点:** 相信大家都会遇到一种**场景**。老师/上司要求你把**某个文件转为pdf**,并且是一批(不止一个,一个的话手动就可以搞定),并且这种是枯燥无聊的工作,既没有什么技术含量又累。 试想一下,如果我把这些文件**放到一个文件夹下,执行一下程序**,几分钟后这些文件就转好。这样半天的活,只要**花几分钟就解决**了。岂不是美滋滋!!! 今天辰哥就教大家将任意文件批量转为PDF,这里以日常办公的**word**、**excel**、**ppt**为例,这三种格式的文件转为PDF。 # 01、word转PDF 这里借助Python的docx2pdf去完成转换操作,该库的安装命令如下: ```python pip install docx2pdf ``` **目标**:读取文件夹下的全部word文件,然后进行转换,最后保存到对应的文件夹中。 ![](https://oscimg.oschina.net/oscnet/up-aaad299d732187c30ab9bb969ad8b663c9e.png) 这里辰哥新建两个word文件作为演示,打开其中一个word看看 ![](https://oscimg.oschina.net/oscnet/up-5d82795951ab0e2affa86b21e5e69758f2b.png) 里面不仅有文字,同时包含有图片 ```python import os from docx2pdf import convert word_path = 'word_path' word_to_pdf = 'word_to_pdf' for i,j,name in os.walk(word_path): for word_name in name: convert(word_path+"/"+word_name, word_to_pdf+"/"+word_name.replace("docx","pdf")) ``` 其中word\_path是存放word文件的文件夹,word\_to_pdf是转换后的pdf存放文件夹。 ![](https://oscimg.oschina.net/oscnet/up-c4411ac499e8d75475033d86c02c569987f.png) 打开第一个pdf,内容如下: ![](https://oscimg.oschina.net/oscnet/up-f90f62a5e95fa32df6cb77022e394d5a9a0.png) 可以看到**文字**、**图片**、以及**排版****这些**都与原文件(word)**一模一样**。 # 02、excel转PDF 这里需要使用到的库是comtypes,下面直接上案例。 上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。 ```python pip install pywin32 ``` **目标:** 将excel文件转为PDF ![](https://oscimg.oschina.net/oscnet/up-62f1d3f624d4d77b35002936b233b3f1502.png) 这里辰哥新建一个excel文件作为演示 ```python import os from win32com.client import DispatchEx excel_path = "D:/公众号/0626/Python研究者.xls" pdf_path = "D:/公众号/0626/Python研究者.pdf" xlApp = DispatchEx("Excel.Application") xlApp.Visible = False xlApp.DisplayAlerts = 0 books = xlApp.Workbooks.Open(excel_path,False) books.ExportAsFixedFormat(0, pdf_path) books.Close(False) xlApp.Quit() ``` 运行之后生成pdf文件 ![](https://oscimg.oschina.net/oscnet/up-2e821918e98d78913925026e435585ef9cf.png) 打开pdf ![](https://oscimg.oschina.net/oscnet/up-24b5b0a4d23dfa4ba12ef8cdc870d9607f9.png) 可以看到excel中的数据已经全部转为PDF格式。 # 03、ppt转PDF 这里需要使用到的库是comtypes,下面直接上案例。 上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。 **目标**:ppt转为pdf ![](https://oscimg.oschina.net/oscnet/up-6a60d897b25ec6470f7d57323d527559795.png) 这个是辰哥之前做分享时弄的一个ppt,咱们就以这个ppt为例 ```python import comtypes.client import os def ppt_to_pdf(): #设置路径 input_file_path=os.path.abspath("Python学习规划路线.pptx") output_file_path=os.path.abspath("Python学习规划路线.pdf") #创建PDF powerpoint=comtypes.client.CreateObject("Powerpoint.Application") powerpoint.Visible=1 slides=powerpoint.Presentations.Open(input_file_path) #保存PDF slides.SaveAs(output_file_path,32) slides.Close() ``` 这里将会ppt:**Python学习规划路线.pptx**转为**Python学习规划路线.pdf** ![](https://oscimg.oschina.net/oscnet/up-3b36a79412b14b169d38fddc36555c46818.png) 打开pdf其内容如下: ![](https://oscimg.oschina.net/oscnet/up-9e1326514d5ff570cd0586605ab1c6eaf5b.png) # 04、小结 本文基本就成功实现目标要求,从效果来看还是非常不错的!完整源码可由文中代码组合而成(已全部分享在文中),感兴趣的读者可以自己尝试! 一定要**动手尝试** **!**一定要**动手尝试** **!**一定要**动手尝试!**

优秀的个人博客,低调大师

学习kubernetes,从快速搭建k8s集群开始

> 本系列文章,我们将在Ubuntu Server 18.04上搭建k8s环境进行入门学习。为了使用原生的Ubuntu Server 18.04,我们将使用multipass来创建多台Ubuntu Server 18.04虚拟环境。也就是说,如果你想完整参考本系列博客学习,你电脑上应当安装并能正常运行multipass,如果你想了解multipass基本操作,可以参考我写的另一篇博客:[https://blog.jkdev.cn/index.php/archives/327/](https://blog.jkdev.cn/index.php/archives/327/)。 > > 本文演示k8s集群搭建步骤,并不涉及k8s基础知识,你可能对文章的一些专业词语感到默认,但没有关系,我们在后面会循序渐进地介绍k8s知识。 本次我们将部署一个主节点(master1)和两个工作节点(worker1、worker2)的集群。为了节省电脑资源,master1、worker1、worker2每个节点分配2个cpu、2G内存、10G硬盘。这是k8s要求的最低配置,但这些配置完全足够我们用以学习。相关操作都会在root用户之下。 ## 一、准备环境 ### 1. 创建Ubuntu Server 18.04虚拟机 分别创建2核cpu、10G硬盘、2G内存,名为master1、worker1、worker2三台虚拟机 ```shell multipass launch -c 1 -d 10G -m 1G -n master1 18.04 multipass launch -c 1 -d 10G -m 1G -n worker1 18.04 multipass launch -c 1 -d 10G -m 1G -n worker2 18.04 ``` 使用```multipass list```查询创建的虚拟机列表,如下 ```shell pan@pandeMacBook-Pro ~ % multipass list Name State IPv4 Image master1 Running 192.168.64.8 Ubuntu 18.04 LTS worker1 Running 192.168.64.11 Ubuntu 18.04 LTS worker2 Running 192.168.64.12 Ubuntu 18.04 LTS ```` 创建虚拟机之后,我们需要对虚拟机进行初始化操作,以下的操作需要在所有主机上进行。 ### 2. 修改root用户密码 为了方便使用root用户,我们对每一台虚拟机进行密码修改操作。以master1为例,如下代码 ```shell # 进入主机 multipass shell master1 # 修改root密码,这里我都改为123456 sudo passwd root # 修改密码之后,直接使用su命令切换 root用户 su ``` ### 3. 关闭防火墙和iptables 根据官方文档,防火墙和iptables可能会影响到k8s集群,所以我们需要关闭掉 ```shell # 关闭防火墙 ufw disable # 关闭iptables iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F ``` ## 二、安装docker与kubeadm 下面的很多安装过程,我们大多使用阿里云镜像进行安装。 ### 1. 安装与配置docker 安装docker ```shell # 安装GPG证书 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # 写入软件源信息 add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # 更新软件库 apt-get -y update # 安装程序 apt-get -y install docker-ce=5:19.03.15~3-0~ubuntu-bionic # 固定版本 apt-mark hold docker-ce ``` 设置docker阿里云加速镜像仓库 ```shell mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://g6ogy192.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"] } EOF systemctl daemon-reload systemctl restart docker ``` ### 2. 安装kubeadm, kubelet, kubectl ```shell # 下载 gpg 密钥 curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - # 添加 k8s 镜像源 cat < /etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF # 更新软件库 apt-get update # 安装程序 apt-get install -y kubelet=1.18.0-00 kubeadm=1.18.0-00 kubectl=1.18.0-00 # 固定版本 apt-mark hold kubelet kubeadm kubectl ``` ### 3. 集群镜像准备 使用```kubeadm config images list```命令查看当前集群所需要的镜像,镜像版本会根据kubeadm版本而定,返回如下内容 ```shell k8s.gcr.io/kube-apiserver:v1.18.20 k8s.gcr.io/kube-controller-manager:v1.18.20 k8s.gcr.io/kube-scheduler:v1.18.20 k8s.gcr.io/kube-proxy:v1.18.20 k8s.gcr.io/pause:3.2 k8s.gcr.io/etcd:3.4.3-0 k8s.gcr.io/coredns:1.6.7 ``` 我们使用docker拉取镜像,但是由于国内正常访问不到```k8s.cgr.io```,可以替换阿里加速镜像地址:```registry.aliyuncs.com/google_containers```,执行如下命令 ```shell docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.20 docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20 docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.20 docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.18.20 docker pull registry.aliyuncs.com/google_containers/pause:3.2 docker pull registry.aliyuncs.com/google_containers/etcd:3.4.3-0 docker pull registry.aliyuncs.com/google_containers/coredns:1.6.7 ``` 接下来给镜像重命名,使其和原kubeadm需要的镜像名称一致 ```shell docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.20 k8s.gcr.io/kube-apiserver:v1.18.20 docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20 k8s.gcr.io/kube-controller-manager:v1.18.20 docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.20 k8s.gcr.io/kube-scheduler:v1.18.20 docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.18.20 k8s.gcr.io/kube-proxy:v1.18.20 docker tag registry.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2 docker tag registry.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0 docker tag registry.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7 ``` 再删除掉从阿里云下载的镜像 ```shell docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.20 docker rmi registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20 docker rmi registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.20 docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.18.20 docker rmi registry.aliyuncs.com/google_containers/pause:3.2 docker rmi registry.aliyuncs.com/google_containers/etcd:3.4.3-0 docker rmi registry.aliyuncs.com/google_containers/coredns:1.6.7 ``` ## 三、k8s集群初始化 ### 1. 初始化master节点 在master节点上执行初始化命令 ```shell kubeadm init --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=Swap ``` 参数说明 * ```--service-cidr```:k8s中scv网络的网络段 * ```--pod-network-cidr```:k8s中pod使用的网络段 * ```--ignore-preflight-errors```:忽略swap报错 初始化结果如下 ```shell Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.64.8:6443 --token mzolyd.fgbta1hw9s9yml55 \ --discovery-token-ca-cert-hash sha256:21ffa3a184bb6ed36306b483723c37169753f9913e645dc4f88bb12afcebc9dd ``` ### 2. 配置集群网络 根据初始化结果提示,我们需要安装网络插件。本次我们使用flannel作为集群的网络插件,将flannel配置文件从互联网保存到master1,文件地址为:[https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml](https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml),在master1上将文件命名为kube-flannel.yml,后执行以下命令 ```shell kubectl apply -f kube-flannel.yml ``` 如看到如下信息,即网络插件安装成功 ```shell podsecuritypolicy.policy/psp.flannel.unprivileged created clusterrole.rbac.authorization.k8s.io/flannel created clusterrolebinding.rbac.authorization.k8s.io/flannel created serviceaccount/flannel created configmap/kube-flannel-cfg created daemonset.apps/kube-flannel-ds created ``` ### 3. 让Linux普通用户能操作集群 根据初始化结果提示,为了让master1上的Linux普通用户正常操作集群,我们输入exit按回车切换回普通用户后执行以下命令 ```shell $ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` ### 4. 初始化集群工作节点 同时,初始化集群管理节点master1之后,我们需要将工作节点worker1和wroker2加入到集群中。将工作节点的初始化命令拷贝到worker1和worker2,使集群的工作节点(worker1、worker2)和工作节点(master1)关联起来,如下命令 ```shell kubeadm join 192.168.64.8:6443 --token mzolyd.fgbta1hw9s9yml55 \ --discovery-token-ca-cert-hash sha256:21ffa3a184bb6ed36306b483723c37169753f9913e645dc4f88bb12afcebc9dd ``` 在工作节点执行初始化命令之后,我们在管理节点使用```kubectl get pods --all-namespaces```查看结果,如下结果 ```shell root@master1:/home/ubuntu# kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-66bff467f8-pw9br 1/1 Running 0 13m kube-system coredns-66bff467f8-wsj45 1/1 Running 0 13m kube-system etcd-master1 1/1 Running 0 14m kube-system kube-apiserver-master1 1/1 Running 0 14m kube-system kube-controller-manager-master1 1/1 Running 0 14m kube-system kube-flannel-ds-c4jnh 1/1 Running 0 3m39s kube-system kube-flannel-ds-rg58c 1/1 Running 0 3m14s kube-system kube-flannel-ds-sw85v 1/1 Running 0 3m15s kube-system kube-proxy-ddk88 1/1 Running 0 3m15s kube-system kube-proxy-dt825 1/1 Running 0 13m kube-system kube-proxy-jgm4h 1/1 Running 0 3m14s kube-system kube-scheduler-master1 1/1 Running 0 14m ``` 需要注意的是,如果你的列表中显示的所有pod并不是处于Running状态,你需要等待一段时间。而且,你在安装集群的过程中,最好处于一个优质的网络环境。 至此,集群搭建完毕。从下一篇文章开始我们将继续介绍k8s基础知识 > 本文原创首发自wx订阅号:**极客开发者up**,禁止转载

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册