Vue3+Vite+AntDesignVue初始化项目

通过vite官方的命令新建一个vue3的项目,通过这个命令新建的项目结构非常简介,当然什么也没有,需要手动安装路由等。 npm create vite@latest 1、配置热更新和路径别名 安装@types/node,配置地址时会用到 npm install @types/node --save-dev import * as path from "path"; export default defineConfig({ server: { // 热更新 hmr: true, // 自动打开浏览器 open: true } // 路径别名 resolve: { alias: { '@': path.resolve(__dirname, 'src'), 'comp': path.resolve(__dirname, 'src/components'), 'styles': path.resolve(__dirname, 'src/assets/styles') } } }) 路径别名在vite.config.ts文件里配置后,还需要在tsconfig.json文件里配置一下paths,因为TS无法自动识别别名路径。 "paths": { "@/*": ["src/*"], "comp/*": ["comp/*"], "styles/*": ["styles/*"] } 2、安装路由 npm i vue-router@next -S 在src目录下新建router目录,然后添加index.ts放路由配置,添加routes.ts来放路由相关路径,最后在main.js里引入。 // index.ts文件 import { createRouter, createWebHistory } from "

加速开发RISC-V开源软件,Linux基金会启动RISE项目

使用RISC-V架构为移动、消费电子、数据中心和汽车等领域提供商用软件。 Linux软件基金会在官博宣布了RISC-V软件生态系统 RISE,该项目由Linux Foundation Europe托管,并支持RISC-V International的全球开放标准活动和成就。 官网:https://riseproject.dev/ RISE项目专注于商业软件的准备工作,与RISC-V International密切合作,加快更多创新性RISC-V产品进入市场。目标市场包括移动、消费电子、数据中心和汽车。 使命: 加速开源软件的发展,为RISC-V提供支持 提高RISC-V平台软件实现的质量 推动RISC-V软件生态系统向前发展,并协调生态系统伙伴的努力 RISE 是一个汇集全球产业领袖的一个全新协作,旨在加速为各种市场细分领域运行高级操作系统的高性能和低功耗RISC-V核心提供软件。 RISE理事会成员包括 Andes、谷歌、英特尔、想象科技、联发科技、英伟达、高通技术公司、红帽子公司、瑞沃斯公司、三星以及Ventana。 RISC-V International首席执行官Calista Redmond提到:“作为全球社区,我们在RISC-V采用方面取得了巨大的进展。我们感谢成千上万的工程师进行上游贡献,并感谢现在聚集起来投资于支持RISC-V软件生态系统中的工具和库的组织。加速采用是我们共同的使命。我们社区和RISE项目的集体投资将建立在这一势头之上。” RISE 项目主席 Amber Huffman 表示:“RISC-V 平台持续的受欢迎度以及各种新用例的强劲进展必须得到高性能、安全、可靠和商业就绪软件的支持。RISE 项目汇集了具有共同紧迫感的领导者,在与 RISC-V International 的合作中加速推进 RISC-V 软件生态系统。” RISE项目成员会进行财务支持,并提供工程人才来解决由RISE技术指导委员会(TSC)确定优先级的特定软件交付内容。 RISE致力于为应用处理器专门创建强大的软件生态系统,其中包括软件开发工具、虚拟化支持、语言运行时、Linux分布集成和系统固件,并首先与现有开源社区合作,遵循开源最佳实践。

Java使用AOP操作日志,傻瓜版

1.我们先创建一个属于我们自己的注释类里面用来放日志的信息(操作类型,操作内容等) 注意的市类上面要加这些注释: @Target({ElementType.TYPE,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component 2.创建一个日志的类里面属性可以自定义为自己要的信息 package com.cykj.bean; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.sql.Timestamp; @Data @NoArgsConstructor @AllArgsConstructor public class Log { private long logId; private String managerId; private String time; private String type; private String content; private String url; private String ip; private String managerName; } 3.在bean创建一个切面类 package com.cykj.bean; import com.cykj.annotation.SysLogAnnotation; import com.cykj.mapper.LogMapper; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.

详细讲解axios封装与api接口封装管理

一、前言 axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护。 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中。他有很多优秀的特性,例如拦截请求和响应、取消请求、转换json、客户端防御XSRF等。所以我们的尤大大也是果断放弃了对其官方库vue-resource的维护,直接推荐我们使用axios库 二、axios封装步骤 安装axios npm install axios -S; // 安装axios复制代码 1.目录创建 一般我会在项目的src目录中,新建一个network文件夹,作为我们的网络请求模块,然后在里面新建一个http.js和一个api.js文件和一个reques.js。http.js文件用来封装我们的axios,api.js用来统一管理我们的接口url, request.js对外暴露我们放在的api方法。 // 在http.js中引入axios import axios from 'axios'; // 引入axios import router from '../router'; // vant的toast提示框组件,大家可根据自己的ui组件更改。 import { Toast } from 'vant'; 环境的切换 我们的项目环境可能有开发环境、测试环境和生产环境。我们通过node的环境变量来匹配我们的默认的接口url前缀。axios.defaults.baseURL可以设置axios的默认请求地址就不多说了。 创建config目录。 目录下创建env.development.js+env.production.js+env.test.js env.development.js内容如下: module.exports={ baseUrl:' http://www.devele.com:4456' //开发环境用到的baseurl } // 环境的切换 const {baseUrl}=require('../config/env.'+process.env.NODE_ENV); //同时 package.json的scripts需指定测试环境的模式 --mode test "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "test": "vue-cli-service build --mode test", "lint": "vue-cli-service lint" } const service = axios.

安装ubuntu分区设置

一般来说,在linux系统中都有最少两个挂载点,分别是/ (根目录)及 swap(交换分区),其中/是必须的; 一般来说我们最少需要两个分区,需要一个SWAP分区,和一个“/”分区,但把一些常用、重要的挂载点分到其它分区,这样便于管理。 一般一个/分区,一个/usr分区,一个/home 分区,一个/var分区。这些完全都可以根据自己的需要来进行分配修改。 / 根目录,存放系统命令和用户数据等 /usr 是Red Hat Linux系统存放软件的地方,如有可能应将最大空间分给它 /home 用户目录,存放普通用户的数据 /var 不断变化的数据,服务器的一些服务放在下面。 /boot boot loader 的静态链接文件,存放与Linux启动相关的程序 /tmp 临时文件 /usr/local 自已安装程序安装在此 /opt 附加的应用程序软件包 建议系统分区方案 / 30G-50G ##较大一些 强制主分区 /usr目录 50G-100G ##用于个人配置应用程序,特别是安装一些容易产生日志较大的程序若wowza tomcat等时,最好划分的大一些 /home 10G(个人感觉应该大一点,30—50G) /var目录 30G-50G ##存放各种日志文件最好较大一些 /swap目录 8G ##内存小于4G的为内存的2倍 内存大于4G的和内存大小一致即可 /boot目录 200M /opt 10G /tmp 10G 如果安装数据库可以划分 /data 用于存放数据库文件 如果安装web服务可以划分 /webroot 用于存放网页文件等等 Linux下可以采用如下的分区(以30G为例): /(根分区) 设成8G swap 一般设为内存的2倍,设成2G /home 剩下的都留给该分区

VMWARE中ubuntu的系统级别的终端

ctrl + alt + f1 ~ f6 进入命令行,字符界面,是系统级别的终端。ctrl + alt + f7 返回 而我们平时用的ctrl + alt + t是图像界面,是个软件终端,是在系统上的一个软件。 安装linux的时候按ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接. 当更改/etc/profile 更改错误时 会在ubuntu登陆时输入密码 即使是对的 也登陆不上的情况 解决办法: ctrl + alt + f1 进入命令行 然后将/etc/profile修改正确 然后重启一切正常。

StringUtils工具类所有方法详解!

StringUtils 是 Apache Commons Lang 中提供的一个字符串处理工具类,其中包含了丰富的字符串处理方法。下面详细介绍 StringUtils 类中的所有方法: isEmpty(CharSequence str) 判断字符序列 str 是否为空,如果为 null 或长度为 0 则返回 true。 isNotEmpty(CharSequence str) 与 isEmpty 方法功能相反,当字符序列不为空时返回 true。 isAnyEmpty(CharSequence... css) 判断多个字符序列是否都为空,如果有一个为空则返回 true。 isNoneEmpty(CharSequence... css) 与 isAnyEmpty 方法功能相反,当所有字符序列都不为空时返回 true。 isBlank(CharSequence str) 判断字符序列 str 是否为空或只包含空格符,如果为 null、长度为 0 或只包含空格符则返回 true。 isNotBlank(CharSequence str) 与 isBlank 方法功能相反,当字符序列不为空且不是只包含空格符时返回 true。 trim(CharSequence str) 去除字符序列 str 开头和结尾的空格符。 trimToNull(CharSequence str) 将 trim(str) 后的结果若为空字符串,则返回 null,否则返回去掉空格符的字符串。 trimToEmpty(CharSequence str) 将 trim(str) 后的结果若为空字符串,则返回空字符串,否则返回去掉空格符的字符串。 equals(CharSequence cs1, CharSequence cs2) 比较两个字符序列 cs1 和 cs2 是否相等,如果都为 null 则返回 true。

【ARMA模型】

ARMA模型:时间序列分析的精华 导言 时间序列分析是一种常用的数据分析方法,用于研究数据在时间上的变化规律。ARMA模型(AutoRegressive Moving Average Model)是时间序列分析中的经典模型之一,它结合了自回归和滑动平均两种方法,具有良好的预测性能和解释能力。 1. ARMA模型原理 1.1 时间序列基础 在深入探讨ARMA模型之前,我们先来了解一些时间序列分析的基础概念。 时间序列(Time Series):按时间顺序排列的一组观测值的序列,表示同一变量在不同时间点上的取值。 自相关(Autocorrelation):衡量时间序列与其自身滞后版本之间的相关性。 移动平均(Moving Average):将时间序列中的每个值与其前面若干个值的平均值进行比较,用于平滑数据和检测趋势。 自回归(Autoregression):将时间序列的当前值与其过去若干个值进行线性组合,用于预测未来值。 1.2 ARMA模型的构建 ARMA模型将自回归(AR)和移动平均(MA)两种方法结合起来,用于描述时间序列数据的动态特性。ARMA模型的一般形式可以表示为ARMA(p, q),其中p代表自回归阶数,q代表移动平均阶数。 AR部分表示时间序列的当前值与过去p个值的线性组合,可以表示为: X t = c + ϕ 1 X t − 1 + ϕ 2 X t − 2 + … + ϕ p X t − p + ε t X_t = c + \phi_1 X_{t-1} + \phi_2 X_{t-2} + \ldots + \phi_p X_{t-p} + \varepsilon_t Xt​=c+ϕ1​Xt−1​+ϕ2​Xt−2​+…+ϕp​Xt−p​+εt​

Java项目:仓库管理系统(java+SSM+JSP+JS+JQUERY+Layui+Mysql)

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 基于SSM的仓库管理系统设计与实现 角色:管理员、员工 管理员:管理员登录系统后,可以对个人中心、员工管理、厂商信息管理、司机信息管理、门店信息管理、仓库信息管理、货物信息管理、货物入库管理、货物出库管理等功能 员工:员工登录到仓库管理系统后,可以对个人中心、厂商信息管理、司机信息管理、门店信息管理、仓库信息管理、货物信息管理、货物入库管理、货物出库管理等功能 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目; 6.数据库:MySql 5.7/8.0等版本均可; 技术栈 后端:SSM(Spring+SpringMVC+Mybatis) 前端:JSP+CSS+JS+JQUERY+Layui 使用说明 1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目; 3. 将项目中db.xml配置文件中的数据库配置改为自己的配置,然后运行; 仓库管理员管理请求: /** * 仓库管理员管理请求 Handler * * @author yy */ @Controller @RequestMapping(value = "/**/repositoryAdminManage") public class RepositoryAdminManageHandler { @Autowired private RepositoryAdminManageService repositoryAdminManageService; // 查询类型 private static final String SEARCH_BY_ID = "searchByID"; private static final String SEARCH_BY_NAME = "

LLVM for TVM

田海立@CSDN 2023-06-01 本文简明列举LLVM作为target,如何集成到TVM里的。 {cmake/modules/LLVM.cmake} 0. 设置编译选项 -- USE_LLVM build option: - USE_LLVM: ON/OFF/<path to llvm-config> {set in cmake/config.cmake, and copy into build/} 1. 执行llvm-config获取llvm配置 find_llvm($(USE_LLVM), $([LLVM_VERSION])) // {from cmake/utils/FindLLVM.cmake} => LLVM_INCLUDE_DIRS llvm-config --cxxflags output match -I => LLVM_DEFINITIONS llvm-config --cxxflags output match -D => LLVM_LIBS llvm-config --libfiles // for llvm libs llvm-config --system-libs // for llvm sys libs => TVM_LLVM_VERSION llvm-config --version 获取之后,设置: set env: TVM_LLVM_VERSION define Macro: TVM_LLVM_VERSION

[转]vue3 + vite 使用 vue-quill 富文本库、使用图片大小、拖拽等插件

Vue3使用的 vite 脚手架 安装这几个库: 富文本:npm install @vueup/vue-quill 图片拖拽插件:npm install quill-image-drop-module 图片缩放大小插件:npm install quill-image-resize-module 使用这个库: 这个库可以实现 webpack.ProvidePlugin({…}) 的方式 npm install @rollup/plugin-inject 在 Vite 中 plugins 节点下 plugins[ // ..... 一些其他插件配置 inject({ 'window.Quill': ['@vueup/vue-quill', 'Quill'], Quill: ['@vueup/vue-quill', 'Quill'], }), ] Quill 富文本注册插件 ImageDrop 、imageResize 注意:如果你使用typescript语言,此处请去掉 lang:ts import { QuillEditor, Quill } from '@vueup/vue-quill'; import '@vueup/vue-quill/dist/vue-quill.snow.css'; import { ImageDrop } from 'quill-image-drop-module'; import imageResize from 'quill-image-resize-module'; Quill.register('modules/ImageDrop', ImageDrop); Quill.register('modules/imageResize', imageResize); 效果 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ceef3b47bd3a4f0892f767b57bbe0113.png) 完整代码: <template> <div> <QuillEditor ref="

微信小程序springboot+vue农产品商城购物系统多商家uniapp

对于易农小程序功能所牵扯的数据都是通过用户进行易农小程序等相关的数据信息内容、并且可以进行管理员服务端;首页、个人中心、农户管理,销售管理、经销商管理、商铺管理、产品信息管理、产品类型管理、系统管理、订单管理,经销商服务端;首页、个人中心、销售管理、商铺管理,销售服务端;首页、个人中心、商铺管理、产品信息管理,农户服务端;首页、个人中心、产品信息管理、订单管理,农户客户端;首页、商铺、产品信息、我的,经销商客户端;首页、商铺、产品信息、我的,销售客户端;首页、商铺、产品信息、我的等功能可以通过系统进行分配,传统的管理模式已经无法满足用户的需求。为此开发了本易农小程序 ,为用户提供一个基于易农小程序,同时方便管理员对用户信息进行管理。该系统满足了用户对易农小程序信息获取的需求,并且信息可以及时、准确、有效地进行查看并且系统化、标准化和有效的工作。 整个小程序框架系统分为两部分:逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 小程序 体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的微信小程序 。 目 录 摘 要 I ABSTRACT II 第一章 绪 论 1 1.1选题背景 2 1.2研究现状 3 1.3研究内容 7 第二章 开发工具及关键技术介绍 8 2.1微信开发者工具 8 2.2小程序框架以及目录结构介绍 8 2.3 JAVA技术 8 2.4 Mysql数据库 8 第三章 系统分析 10 3.1需求分析 10 3.2可行性分析 10 3.2.1技术可行性:技术背景 10 3.2.2经济可行性 11 3.2.3操作可行性: 11 3.3性能分析 11 3.4系统操作流程 12 3.4.1管理员登录流程 12 3.4.2信息添加流程 12 3.4.3信息删除流程 13 第四章 系统设计与实现 15 4.1系统架构设计 15 4.2开发流程设计 15 4.3数据库设计 16 4.3.1实体ER图 16

【问题与方法】screen命令的详细使用

screen 是一个在 Linux 系统下常用的终端多路复用工具,它可以在一个终端窗口中运行多个终端会话,并且可以在会话之间自由切换,而不需要打开多个终端窗口。它有很多功能,可以帮助用户管理多个终端会话,以及保持会话的持续运行。 以下是 screen 命令的详细使用: 安装 如果你的系统中没有 screen 命令,你需要安装它。在 Debian / Ubuntu 系统上,可以使用以下命令安装: sudo apt-get install screen 在 CentOS / Red Hat 系统上,可以使用以下命令安装: sudo yum install screen 启动 在终端窗口中直接输入 screen 命令即可启动一个 screen 会话: screen 创建新的窗口 在 screen 会话中,可以创建多个窗口以便在不同的会话之间切换。按下 Ctrl+a 然后按下 c 可以在当前会话中创建一个新的窗口。 切换窗口 在 screen 会话中,可以快速切换窗口来管理多个会话。按下 Ctrl+a 然后按下 n 即可切换到下一个窗口,按下 Ctrl+a 然后按下 p 即可切换到上一个窗口。 列出所有窗口 使用以下命令可以列出所有的 screen 窗口: screen -ls 进入指定窗口 使用以下命令可以进入指定的 screen 窗口: screen -r [会话ID] 会话 ID 可以通过 screen -ls 命令获得。

Stable-Diffusion部署web服务到公网,实现个人电脑远程访问

在个人电脑上部署好了了Stable-Diffusion,用了一段时间后发现推理速度太慢。于是就想到部署服务器上使用,但这样有一个问题是每次使用web服务都得连远程桌面去控制,非常不方便,所以想能不能把Stable_Diffusion的web界面搬到公网上,直接在个人电脑上通过浏览器访问。 new bing介绍了三种把localhost本地测试地址映射到公网提供访问的工具: Localtunnel 、 ngrok.com、Sunny ngrok。一番折腾后最终用ngrok搞定了地址映射,以下贴出Stable_Diffusion部署到公网的步骤: 1. 安装Stable-Diffusion 根据博客介绍的步骤在ubuntu服务器上安装好Stable-Diffusion 最详细的Ubuntu服务器搭建Stable-Diffusion教程(无显卡,仅用CPU)https://blog.csdn.net/UCB001/article/details/130039154?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu%E5%AE%89%E8%A3%85stabel_diffsion&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-130039154.142%5Ev88%5Einsert_down28v1,239%5Ev2%5Einsert_chatgpt&spm=1018.2226.3001.4187 2. 在ubuntu服务器上安装ngrok 登录ngrok官网,注册账号 下载linux版本的压缩包 解压tgz压缩包到ubuntu服务器 tar zxvf ngrok-v3-stable-linux-arm.tgz 在终端输入ngrok测试,出现提示信息即为安装成功 3. 启动Stable-Diffusion cd到Stable-Diffusion根目录下,启动Stable-Diffusion的web服务,并设置端口号为7860(可自定义) python3 launch.py --port 7860 4. 启动ngrok服务 ngrok http 7860 (注:这里的端口号需要与启动Stable-Diffusion web服务时设置的端口号一致) ngrok服务启动后,终端显示内容如下,Forwarding一行对应的内容即为ngrok随机分配的公网地址 5. 个人电脑公网访问 在个人电脑浏览器输入公网地址https://fb5e-2001-da8-215-6a01-00-f-2b0.ngrok-free.app 出现如下界面: 点击visit site即可访问Stable-Diffusion的web服务

FTP文件共享服务

目录 概述 匿名用户验证 可选配置项 本地用户验证 本地用户访问控制 用DNS服务连接ftp主机可以使用域名登录 概述:FTP:linux下最常见的文件服务器,工作于应用层,实现文件传输 FTP:file transfer protocol 文件传输协议 FTP连接类型 命令连接:客户端发起请求,服务器响应默认一直保持连接 数据连接:按需打开,按需关闭,与命令连接相关联,有可能同时打开多个数据连接 端口 控制连接 : TCP/21 数据连接 : 20/随机端口 工作模式 主动模式: 1、客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口 2、连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接 被动模式: 1、客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式 2、控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端 3、客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接 服务名:vsftpd 主配置文件:/etc/vsftpd/vsftpd.conf 用户控制文件:/etc/vsftpd/ftpusers /etc/vsftpd/user_list 用户验证类型 匿名用户: 是一种最不安全的模式,任何人都可无需密码验证而直接登录到FTP服务器 本地用户: 是通过linux系统本地的账号密码进行验证登录,相比较匿名开放模式更安全,配置也比较简单。 虚拟用户:更安全 安装: 服务器安装vsftpd软件 客户端安装ftp,否则无法使用ftp命令 登录时,直接使用ftp命令加上服务器IP地址 匿名用户验证: 用户名:ftp或者anonymous 密码:无 工作目录: /var/ftp、/var/ftp/pub [root@localhost ~] vim /etc/vsftpd/vsftpd.conf #打开配置文件 # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=YES #将此行注释消除 # # Uncomment this to allow local users to log in.

时间显示 (蓝桥杯) JAVA

题目描述: 小蓝要和朋友合作开发一个时间显示的网站。 在服务器上,朋友已经获取了当前的时间,用一个整数表示。 值为从1970 年1 月1日00:00:00 到当前时刻经过的毫秒数。 现在,小蓝要在客户端显示出这个时间。 小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。 给定一个用整数表示的时间,请将这个时间对应的时分秒输出。 输入格式: 输入第一行包含正整数T,表示存在T组测试数据,T不超过1000。 接下来T行,每行一个正整数表示时间。时间不超过10^18。 输出格式: 输出T行,每行按照如下格式: 输出时分秒表示的当前时间,格式形如HH:MM:SS 其中HH 表示时,值为0 到23,MM 表示分,值为0 到59,SS 表示秒,值为0 到59。 时、分、秒不足两位时补前导0。 输入样例: 2 46800999 1618708103123 输出样例: 13:00:00 01:08:23 解题思路: 如果知道 1s = 1000 ms 用 long 储存输入的数据那基本上就没问题了。 代码如下: import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i = 0; i < n; i ++) { long tt = sc.

《故事力》- 怎么通过讲故事,提高你的职场影响力?

【故事背后的力量——推荐《故事力》】📖🌟 《故事力》是一本关于故事的力量和影响的书籍。作者通过讲述各种真实故事,展示了故事在沟通、教育和人际关系中的重要性。 本书的精华包括以下几个方面: 1. 故事是人们交流和沟通的最自然、最有效的方式之一。故事可以帮助人们建立联系,传递信息和文化,同时也是理解和娱乐的重要途径。 2. 好的故事有共鸣。共鸣是指听众和故事之间的情感共鸣,它是故事的精华,可以帮助听众更好地理解故事的内涵和意义。 3. 故事可以建立信任。故事是一种说服和建立信任的强大工具,它们可以帮助人们获取共识和理解,并帮助达成共同目标。 4. 故事可以让人认识自己。故事是一种自我认知和成长的工具,它们可以启示我们,让我们深入了解自己和他人的内心。 总的来说,《故事力》是一本既有趣又启发人的故事书。通过对故事的深入探讨,它充分展示了故事和人们生活的紧密联系。阅读这本书会让你更好地理解自己与世界,发现更多关于人性和情感的深层次内容,并帮助你在各种事情上变得更有感染力和影响力。 所有对故事感兴趣的人,以及希望提高交流沟通技巧的人。

【毕业设计】基于springboot + vue微信小程序商城

目录 前言创新点/亮点✨毕设目录一、视频展示二、系统介绍三、项目地址四、运行环境五、设计模块①前台②后台 六、系统功能模块结构图七、 准备阶段①使用真实支付②使用模拟支付八、使用说明九、登录后台十、后台页面展示十一、微信小程序页面展示 前言 【毕业设计】基于springboot + vue微信小程序商城 这是一款基于SpringBoot+Vue的微信小程序文创平台和艺术类专业毕设收集平台,为用户提供文化创意产品的学习以及艺术类专业毕业生的成果展示和交流平台。文创平台实现了用户注册、登录、发布、浏览和真实购买等功能,同时又是艺术类专业学生毕设作品数据的存储和管理。 创新点/亮点✨ 支持微信真实支付(当然模拟支付也是可以的)集文创平台/手工艺品、艺术类毕设收集平台与商城小程序于一体;提供文化创意产品的学习以及艺术类专业毕业生的成果展示和交流平台;汇集非遗手工艺作品,文创产品,工艺美术品,以及文化相关的特色产品介绍,展示非遗之作工艺。在文旅基础上,探索文创产品设计对非遗文化活化研究的相关落地项目。系统页面精美,使用目前流行开发框架三件套“springboot+vue+mysql”以及流行的微信小程序,用户端为小程序,管理端为pc,符合当下需求。系统本身可扩展性强,可二次开发为“校园二手交易平台”,“农产品售卖小程序”,“校园助农小程序”,“微信点餐小程序”,“外卖小程序”,以及各类“商城小程序”,产品可为图书,电子产品,衣物等。系统可作为👉课程设计、毕业设计、大学生创新创业项目、互联网 + 大赛👈等课题的不二之选。 毕设目录 项目名地址1、【毕业设计】基于springboot的大学生综合素质测评管理系统http://t.csdn.cn/smVjL2、【毕业设计】基于springboot + vue微信小程序文创平台商城http://t.csdn.cn/rUQDg3、【毕业设计-免费获取】springboot+vue—酒店客房管理系统http://t.csdn.cn/4zBzE4、【毕业设计】springboot+vue前后端分离-考试报名管理系统http://t.csdn.cn/TpHxC 一、视频展示 安装部署教程:https://b23.tv/iefQxk5 视频展示/讲解:https://b23.tv/C8dxfvB 备注 :以上项目是完整的,代码都是经过多次部署,可以正常运行的,遇到maven,node,java环境等问题百度可解决大部分问题,下面的同学就自己部署出来了。 当然,我是非常的、强烈的,中肯的建议自己跟着安装部署教程部署(就是问我太多了,为满足需求,录了个视频,尽量自己解决哈,最近太忙了 😭 ) 二、系统介绍 系统采用主流技术栈实现,Mysql数据库,SpringBoot2+Mybatis Plus后端,微信小程序原生实现,Vue3.2+Element Plus实现后台管理。基于JWT技术实现前后端分离。微信小程序端涵盖了axios异步请求,Promise应用,swiper组件,自定义组件,应用了微信小程序提供的登录,支付,地址管理,包括下拉滑动分页,less应用,以及结合SpringBoot后端实现了企业级微信小程序支付功能。后台管理采用了主流的Vue3.2+Element Plus组件 实现,涵盖了axios+Promise工具类封装,自定义icon,vuex应用,router路由,路由守卫,使用了大量的Element Plus组件,如表格,分页,图片上传,下拉框,二级联动,Form表单,rules验证框架,dialog以及第三方vue-quil富文本组件等。 三、项目地址 🌈项目总地址:https://gitee.com/f_xz/mall💥 🟢前台源码:https://gitee.com/f_xz/mall-vue 🟢后台源码:https://gitee.com/f_xz/back-end 🟢微信小程序源码:https://gitee.com/f_xz/wechat-mini-program-front-desk 🟢数据库源码:https://gitee.com/f_xz/database/blob/master/sql.sql ⚠️以上便是完整项目源码地址,可自行下载。 四、运行环境 环境版本博主版本系统win 10/11JDK1.8.0_144Maven3.6.1IDEA2023Node14.16.0 MySQL5.6.42 / 5.7.x 备注:以上版本为博主电脑配置,可点击进入官网下载 五、设计模块 ①前台 用户模块:登录、注册;轮播模块:轮播图展示;作品模块:热门作品、类别作品、全部作品、单类别作品、作品详情、作品轮播图、作品图片详情、作品搜索功能;类别模块:类别展示;地址模块:地址添加、地址删除、地址展示;购物模块:购物车添加、购物车修改、购物车展示、购物车删除;订单模块:订单生成、订单展示。 ②后台 统计模块:用户数量统计、专业统计、作品数量统计;用户模块:用户展示类别模块:类别展示、类别添加、类别修改、类别删除作品模块:作品添加、作品展示、作品搜索、作品修改、作品删除订单模块:订单展示 (合计:12个模块,35个功能) 六、系统功能模块结构图 七、 准备阶段 ①使用真实支付 注册个体工商户微信公众平台(企业资质认证)注册微信小程序 ②使用模拟支付 注册微信小程序 八、使用说明 导入相应开发软件,运行即可。可看视频部署教程 九、登录后台 端口:8080账号:admin 密码:123456地址:http://127.0.0.1:8080 十、后台页面展示 十一、微信小程序页面展示

如何避免Selenium爬虫被网站识破

在对一些需要进行登陆操作的网站爬取时,通常都会使用到Selenium。但是Selenium爬虫在爬取数据时也是会被网站检测到,这是因为Selenium模拟了浏览器行为,而相对于真实用户的浏览器,Selenium模拟无法识别JavaScript代码和CSS文件。此外,网站也可能通过检测请求头、IP地址、Cookie等信息来判断是否是爬虫。 接下来我们就详细的来了解下这些原因是怎么产生的。 1、请求头信息:一般情况下Selenium提供的请求头信息与正常的浏览器请求头略有不同,所以需要自定义User-Agent字段让请求头更像正常的浏览器。 2、IP封禁或限制访问:如果频繁使用同一个IP地址进行数据爬取,服务器可能会将该IP地址视为恶意IP并加入黑名单。 3、Cookie验证:部分网站可能会在登录后,在后续的每个请求中都要求携带相关的Cookie信息。 4、页面加载速度:如果程序访问频率过高,页面加载时间却显示异常迅速,网站越是往后就越容易加强反爬虫措施了。 以下就是针对上述问题而提供的解决方式: 1、更换User-Agent:可以在每个请求中使用不同的User-Agent字段,避免与其他请求相同IP和头部参数给网站接口留下“爬虫”的印象。 2、设置合理的间隔时间:通过设置适当间隔(如访问网站后1-5秒内不再访问),以模拟真实用户的行为,减少被检测到的概率。 3、使用代理IP:代理IP可以隐藏你的真实IP地址,但是如果时间较长或请求次数太频繁,代理IP也有被风控的危险,所以尽量使用更多,质量更好的IP池。 以下是一段使用代理IP的Selenium爬虫示例代码,可以在每次请求时更换一个随机代理IP,这种就是隧道转发模式的代理,需要注意的是,要使用合法、高质量的代理IP服务提供商比如亿牛云代理,以避免安全和质量问题。 from selenium import webdriver import string import zipfile # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "3111" # 代理验证信息 proxyUser = "username" proxyPass = "password" def create_proxy_auth_extension(proxy_host, proxy_port, proxy_username, proxy_password, scheme='http', plugin_path=None): if plugin_path is None: plugin_path = r'/tmp/{}_{}@t.16yun.zip'.format(proxy_username, proxy_password) manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "16YUN Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", "<all_urls>", "

Android开发基础

介绍 1.安卓开发简介 2.App的运行环境 3.Android四大基本组件 4.Activity生命周期 5.创建新项目 6.Android开发工具 7.Android App中Activity的生命周期 总结 1.安卓开发简介 android开发是指android平台上应用的制作,Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。 Android是一种基于Linux的自由及开放源代码的操作系统,Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、库和运行环境层和Linux 内核层 2.App的运行环境 App是在手机上运行的一类应用软件,而应用软件依附于操作系统,无论电脑还是手机,刚开机都会显示桌面,这个桌面便是操作系统的工作台。个人电脑的操作系统主要有微软的Windows和苹果的Mac OS,智能手机流行的操作系统也有两种,分别是安卓手机的Android和苹果手机的iOS。本书讲述的App开发为Android上的应用开发,Android系统基于Linux内核,但不等于Linux系统,故App应用无法在Linux系统上运行。 Android Studio是谷歌官方推出的App开发环境,它提供了三种操作系统的安装包,分别是Windows、Mac和Linux。这就产生一个问题:开发者可以在电脑上安装Android Studio,并使用Android Studio开发App项目,但是编译出来的App在电脑上跑不起来。这种情况真是令人匪夷所思的,通常学习C语言、Java或者Python,都能在电脑的开发环境直接观看程序运行过程,就算是J2EE开发,也能在浏览器通过网页观察程序的运行结果。可是安卓的App应用竟然没法在电脑上直接运行,那该怎样验证App的界面展示及其业务逻辑是否正确呢? 为了提供App开发的功能测试环境,办法是利用Android Studio创建内置的模拟器,然后启动内置模拟器。 3.Android四大基本组件 Activity(活动):也称界面程序,在Android的程序当中,Activity 一般代表手机屏幕的一屏。一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转。 Service(服务): 一种长生命周期、没有可视化界面、运行于后台的一种服务程序。 BroadcastReciver(广播接收器):对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。 ContentProvider(内容提供商):实现应用程序之间共享数据。应用程序通过ContentResolver对象访问ContentProvider中的数据,该对象提供了持久层数据的CRUD方法。 4.Activity生命周期 Activity的生命周期涵盖了从Activity被创建到被销毁的整个过程,包括以下生命周期方法: onCreate():Activity被创建时调用,用于初始化UI组件及变量。 onStart():Activity开始被用户可见时调用,此时Activity还无法交互。 onResume():Activity可交互时调用,此时Activity在栈顶,用户可与之交互。 onPause():Activity失去焦点时调用,通常会在此方法中保存数据或释放资源。 onStop():Activity被完全覆盖或进入后台时调用,此时Activity不可见。 onRestart():Activity重新回到前台,但不一定会调用onStart()方法。 onDestroy():Activity被销毁时调用,用于释放所有资源及内存。 以上生命周期方法可以根据需要重写,以实现特定的逻辑和功能。在处理生命周期方法时,需要注意遵守生命周期的规范,以确保应用程序的正常运行。 5.创建新项目 打开软件Android Studio 如果您已打开一个项目,请依次选择 File > New > New Projec 在“Create New Project”向导中,输入应用程序的名称,选择所需的项目位置并选择所需的语言(Java或Kotlin) 选择所需的最低API级别,并选择空活动模板或其他模板。 为您的应用程序选择所需的想要的功能和库 配置设备和设置应用程序的图标和名称 单击“Finish”按钮,完成新项目的创建 完成以上步骤后,您将获得一个新的Android Studio项目,其中包含您选择的活动模板和其他库和功 6.Android开发工具 基于IntelliJ IDEA的Android Studio+SDK+JDK+Genymotion