基于Springboot+Vue的Java项目-农产品直卖平台系统开发实战(附演示视频+源码+LW)

news2025/1/18 10:39:54

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Java毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎微信小程序毕业设计

开发环境

开发语言:Java
框架:Springboot+Vue
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7
数据库工具:Navicat12
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器

演示视频

springboot266农产品直卖平台的设计与实现录像

原版高清演示视频-编号266:
https://pan.quark.cn/s/5cda95b17ee0

源码下载地址:

https://download.csdn.net/download/2301_76953549/89100213

LW目录

【如需全文请按文末获取联系】
在这里插入图片描述在这里插入图片描述

目录

  • 开发环境
  • 演示视频
  • 源码下载地址:
  • LW目录
  • 一、项目简介
  • 二、系统设计
    • 2.1软件功能模块设计
    • 2.2数据库设计
  • 三、系统项目部分截图
    • 3.1管理员功能实现
    • 3.2商家功能实现
    • 3.3用户功能实现
  • 四、部分核心代码
    • 4.1 用户部分
  • 获取源码或论文

一、项目简介

农产品直卖平台管理数据的工具是MySQL,编码的语言是Java,运用的框架是Spring Boot框架。该系统可以实现商家信用类型管理,农产品信息管理,农产品评价管理,商家管理,农产品订单管理,公告信息管理,用户管理等功能。

二、系统设计

2.1软件功能模块设计

对管理员具体功能的设计结果将以图4.1所示的管理员功能结构图来进行体现。管理员对于农产品直卖平台操作的功能包括管理农产品基本信息,管理农产品的相关评价信息,以及管理农产品的订单信息,管理商家信用信息以及商家信息,管理用户和公告等。
在这里插入图片描述
对商家具体功能的设计结果将以图4.2所示的商家功能结构图来进行体现。商家对于农产品直卖平台操作的功能包括管理农产品基本信息,农产品库存信息,查看农产品评价内容,对评价农产品的用户进行回复,管理农产品销售订单,查看公告内容等。
在这里插入图片描述
对用户具体功能的设计结果将以图4.3所示的用户功能结构图来进行体现。用户对于农产品直卖平台操作的功能包括在前台购买农产品,管理收货地址,管理购买的农产品信息,查看商家,通过购物车对需要购买的农产品进行统一下单等。
在这里插入图片描述

2.2数据库设计

(1)农产品包括的属性有农产品照片,农产品库存,农产品原价等。其属性图如下。
在这里插入图片描述

(2)农产品订单包括的属性有购买数量,订单类型,支付类型等。其属性图如下。
在这里插入图片描述
(3)商家包括的属性有商家名称,联系方式,邮箱等。其属性图如下。
在这里插入图片描述
(5)设计的各实体间关系E-R图如下。
在这里插入图片描述

三、系统项目部分截图

3.1管理员功能实现

商家管理
该功能主要用于实现对商家基本信息的管理,商家管理界面的运行效果见图5.1。在此界面,管理员根据商家名称查询商家,可以修改,删除商家资料。商家资料包括商家名称,联系方式,商家信用类型,营业执照等信息。

在这里插入图片描述
商家信用管理
该功能主要用于实现对商家信用基本信息的管理,商家信用管理界面的运行效果见图5.3。在此界面,管理员新增商家信用类型名称,以及对登记错误的商家信用类型名称进行更改,对于需要删除的商家信用信息,也能使用删除功能直接删除。
在这里插入图片描述

3.2商家功能实现

农产品管理
该功能主要用于实现对农产品基本信息的管理,农产品管理界面的运行效果见图5.4。在此界面,商家对农产品的照片进行上传,登记农产品的原价,现价,登记农产品名称以及农产品库存信息等,对于农产品的基础信息,商家可以修改,删除,对于农产品的库存信息,商家可以增加库存,可以减少农产品库存等。如果商家不需要再销售某种农产品,商家则可以下架农产品。
在这里插入图片描述
农产品订单管理
该功能主要用于实现对农产品订单基本信息的管理,农产品订单管理界面的运行效果见图5.6。在此界面,商家可以根据农产品名称,农产品类型以及用户姓名等条件来实现对农产品订单的查询操作,同时可以查看农产品订单详情。
在这里插入图片描述

3.3用户功能实现

农产品信息
农产品信息界面的运行效果见图5.7。在此界面,用户可以查看农产品原价以及现价信息,查看农产品所属商家信息,用户可以查看农产品信息界面下方展示的农产品评论信息,当用户决定购买农产品时,可以直接通过购买功能快速下单。
在这里插入图片描述
农产品订单
农产品订单界面的运行效果见图5.9。在此界面,用户查看所有的农产品订单信息,包括已评价,已发货等农产品订单信息,用户根据个人需要对农产品订单进行相应操作。
在这里插入图片描述
购物车
购物车界面的运行效果见图5.10。在此界面,用户可以把需要购买的农产品都放入购物车保存,然后统一下单支付购买的农产品,这样既方便又节省时间。
在这里插入图片描述

四、部分核心代码

4.1 用户部分


package com.controller;

import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;

import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;

/**
 * 农产品收藏
 * 后端接口
 * @author
 * @email
*/
@RestController
@Controller
@RequestMapping("/nongchanpinCollection")
public class NongchanpinCollectionController {
    private static final Logger logger = LoggerFactory.getLogger(NongchanpinCollectionController.class);

    @Autowired
    private NongchanpinCollectionService nongchanpinCollectionService;


    @Autowired
    private TokenService tokenService;
    @Autowired
    private DictionaryService dictionaryService;

    //级联表service
    @Autowired
    private NongchanpinService nongchanpinService;
    @Autowired
    private YonghuService yonghuService;



    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("用户".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        else if("商家".equals(role))
            params.put("shangjiaId",request.getSession().getAttribute("userId"));
        if(params.get("orderBy")==null || params.get("orderBy")==""){
            params.put("orderBy","id");
        }
        PageUtils page = nongchanpinCollectionService.queryPage(params);

        //字典表数据转换
        List<NongchanpinCollectionView> list =(List<NongchanpinCollectionView>)page.getList();
        for(NongchanpinCollectionView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        NongchanpinCollectionEntity nongchanpinCollection = nongchanpinCollectionService.selectById(id);
        if(nongchanpinCollection !=null){
            //entity转view
            NongchanpinCollectionView view = new NongchanpinCollectionView();
            BeanUtils.copyProperties( nongchanpinCollection , view );//把实体数据重构到view中

                //级联表
                NongchanpinEntity nongchanpin = nongchanpinService.selectById(nongchanpinCollection.getNongchanpinId());
                if(nongchanpin != null){
                    BeanUtils.copyProperties( nongchanpin , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setNongchanpinId(nongchanpin.getId());
                }
                //级联表
                YonghuEntity yonghu = yonghuService.selectById(nongchanpinCollection.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody NongchanpinCollectionEntity nongchanpinCollection, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,nongchanpinCollection:{}",this.getClass().getName(),nongchanpinCollection.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("用户".equals(role))
            nongchanpinCollection.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<NongchanpinCollectionEntity> queryWrapper = new EntityWrapper<NongchanpinCollectionEntity>()
            .eq("nongchanpin_id", nongchanpinCollection.getNongchanpinId())
            .eq("yonghu_id", nongchanpinCollection.getYonghuId())
            .eq("nongchanpin_collection_types", nongchanpinCollection.getNongchanpinCollectionTypes())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        NongchanpinCollectionEntity nongchanpinCollectionEntity = nongchanpinCollectionService.selectOne(queryWrapper);
        if(nongchanpinCollectionEntity==null){
            nongchanpinCollection.setInsertTime(new Date());
            nongchanpinCollection.setCreateTime(new Date());
            nongchanpinCollectionService.insert(nongchanpinCollection);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody NongchanpinCollectionEntity nongchanpinCollection, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,nongchanpinCollection:{}",this.getClass().getName(),nongchanpinCollection.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("用户".equals(role))
//            nongchanpinCollection.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        //根据字段查询是否有相同数据
        Wrapper<NongchanpinCollectionEntity> queryWrapper = new EntityWrapper<NongchanpinCollectionEntity>()
            .notIn("id",nongchanpinCollection.getId())
            .andNew()
            .eq("nongchanpin_id", nongchanpinCollection.getNongchanpinId())
            .eq("yonghu_id", nongchanpinCollection.getYonghuId())
            .eq("nongchanpin_collection_types", nongchanpinCollection.getNongchanpinCollectionTypes())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        NongchanpinCollectionEntity nongchanpinCollectionEntity = nongchanpinCollectionService.selectOne(queryWrapper);
        if(nongchanpinCollectionEntity==null){
            nongchanpinCollectionService.updateById(nongchanpinCollection);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        nongchanpinCollectionService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }


    /**
     * 批量上传
     */
    @RequestMapping("/batchInsert")
    public R save( String fileName){
        logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
        try {
            List<NongchanpinCollectionEntity> nongchanpinCollectionList = new ArrayList<>();//上传的东西
            Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
            Date date = new Date();
            int lastIndexOf = fileName.lastIndexOf(".");
            if(lastIndexOf == -1){
                return R.error(511,"该文件没有后缀");
            }else{
                String suffix = fileName.substring(lastIndexOf);
                if(!".xls".equals(suffix)){
                    return R.error(511,"只支持后缀为xls的excel文件");
                }else{
                    URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                    File file = new File(resource.getFile());
                    if(!file.exists()){
                        return R.error(511,"找不到上传文件,请联系管理员");
                    }else{
                        List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                        dataList.remove(0);//删除第一行,因为第一行是提示
                        for(List<String> data:dataList){
                            //循环
                            NongchanpinCollectionEntity nongchanpinCollectionEntity = new NongchanpinCollectionEntity();
//                            nongchanpinCollectionEntity.setNongchanpinId(Integer.valueOf(data.get(0)));   //农产品 要改的
//                            nongchanpinCollectionEntity.setYonghuId(Integer.valueOf(data.get(0)));   //用户 要改的
//                            nongchanpinCollectionEntity.setNongchanpinCollectionTypes(Integer.valueOf(data.get(0)));   //类型 要改的
//                            nongchanpinCollectionEntity.setInsertTime(date);//时间
//                            nongchanpinCollectionEntity.setCreateTime(date);//时间
                            nongchanpinCollectionList.add(nongchanpinCollectionEntity);


                            //把要查询是否重复的字段放入map中
                        }

                        //查询是否重复
                        nongchanpinCollectionService.insertBatch(nongchanpinCollectionList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }





    /**
    * 前端列表
    */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

        // 没有指定排序字段就默认id倒序
        if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){
            params.put("orderBy","id");
        }
        PageUtils page = nongchanpinCollectionService.queryPage(params);

        //字典表数据转换
        List<NongchanpinCollectionView> list =(List<NongchanpinCollectionView>)page.getList();
        for(NongchanpinCollectionView c:list)
            dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
        return R.ok().put("data", page);
    }

    /**
    * 前端详情
    */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        NongchanpinCollectionEntity nongchanpinCollection = nongchanpinCollectionService.selectById(id);
            if(nongchanpinCollection !=null){


                //entity转view
                NongchanpinCollectionView view = new NongchanpinCollectionView();
                BeanUtils.copyProperties( nongchanpinCollection , view );//把实体数据重构到view中

                //级联表
                    NongchanpinEntity nongchanpin = nongchanpinService.selectById(nongchanpinCollection.getNongchanpinId());
                if(nongchanpin != null){
                    BeanUtils.copyProperties( nongchanpin , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setNongchanpinId(nongchanpin.getId());
                }
                //级联表
                    YonghuEntity yonghu = yonghuService.selectById(nongchanpinCollection.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody NongchanpinCollectionEntity nongchanpinCollection, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,nongchanpinCollection:{}",this.getClass().getName(),nongchanpinCollection.toString());
        Wrapper<NongchanpinCollectionEntity> queryWrapper = new EntityWrapper<NongchanpinCollectionEntity>()
            .eq("nongchanpin_id", nongchanpinCollection.getNongchanpinId())
            .eq("yonghu_id", nongchanpinCollection.getYonghuId())
            .eq("nongchanpin_collection_types", nongchanpinCollection.getNongchanpinCollectionTypes())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        NongchanpinCollectionEntity nongchanpinCollectionEntity = nongchanpinCollectionService.selectOne(queryWrapper);
        if(nongchanpinCollectionEntity==null){
            nongchanpinCollection.setInsertTime(new Date());
            nongchanpinCollection.setCreateTime(new Date());
        nongchanpinCollectionService.insert(nongchanpinCollection);
            return R.ok();
        }else {
            return R.error(511,"您已经收藏过了");
        }
    }


}

获取源码或论文

如需对应的LW或源码,以及其他定制需求,也可以点我头像查看个人简介联系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1674542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【docker】SpringBoot应用容器镜像日志挂载

启动镜像时候使用 -v 挂载 首先得在宿主机创建目录&#xff1a;/workspace/java/demo/logs mkdir -pv /workspace/java/demo/logs 启动镜像 docker run -p 8080:8080 -itd -v /workspace/java/demo/logs/:/logs/ 192.168.2.1:5000/demo:0.0.1-SNAPSHOT -v /workspace/ja…

VMware虚拟机没有网,无法设置网络为桥接状态

今天需要使用Ubuntu18但现有虚拟机是Ubuntu20&#xff0c;由于硬盘空间不够大&#xff0c;所以删除了原来的虚拟机并重新搭建Ubuntu18的环境&#xff0c;然后发现虚拟机没有网络&#xff0c;而我之前的虚拟机这一切都是正常的。 在网络设置里勾选的是桥接模式但无法联网&#x…

如何基于可靠事件模式实现最终一致性?

今天我们一起来探讨一个分布式环境下的常见问题,这个问题与数据的一致性有关。那么,什么是数据一致性呢?要回答这个问题,需要我们回顾一下单块系统和分布式系统中对于数据处理的不同需求。 我们知道,传统的单块系统通常都只与一个数据库进行交互,所有的数据处理过程都位于…

前端连续发送同一个请求时,终止上一次请求

场景&#xff1a;几个tab页之间快速的切换&#xff08;tab页只是参数不同&#xff0c;下边的数据渲染给同一个data&#xff09;就会导致如果我在1,2,3&#xff0c;tab页按照顺序快速点击&#xff0c;发送三个请求&#xff0c;我想要展示的是3但是如果1或者2请求响应的时间比3长…

广汽原车控制系统CAN协议控制汽车基本信息获取及数据应用

在现代汽车工业的迅速发展中&#xff0c;车辆控制系统的智能化和网络化已成为提升汽车性能的关键。广汽作为中国汽车行业的佼佼者&#xff0c;其在原车通信网络方面也取得了显著的成就。特别是广汽原车CAN&#xff08;Controller Area Network&#xff09;协议的应用&#xff0…

unordered_map、unordered_set底层封装

文章目录 一、先实现哈希桶1.1哈希桶的实现方法1.2日常普遍的哈希桶存放的数据有两种&#xff1a;字符串和整形1.3哈希桶的实现代码详解1.3.1哈希桶的两种仿函数&#xff08;int和string&#xff09;1.3.2哈希桶的节点&#xff08;如果桶非常深&#xff0c;这里考虑挂红黑树&am…

k8s 网络组件详细 介绍

目录 一 k8s 有哪些网络组件 二 k8s 网络概念 1&#xff0c; k8s 三种网络 2&#xff0c;K8S 中 Pod 网络通信 2.1 Pod 内容器与容器之间的通信 2.2 同一个 Node 内 Pod 之间的通信 2.3 不同 Node 上 Pod 之间的通信 三 Flannel 网络组件 1&#xff0c;Flannel …

leetcode.所有可能的路径(python)

找到从节点0到n-1的所有路径&#xff0c;肯定是用dfs算法&#xff0c;不过有两种思考方式&#xff1a; 一种是&#xff1a;从后往前考虑。如果这条路能到n-1节点&#xff0c;那么dfs返回一个rec列表&#xff0c;里面存路径。 class Solution:def allPathsSourceTarget(self, …

C语言数据结构(超详细讲解)| 栈和队列的实现

栈和队列的实现 引言 在计算机科学的世界里&#xff0c;数据结构是我们构建各种复杂算法和解决问题的基石。其中&#xff0c;栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;作为两种经典的数据结构&#xff0c;在解决实际问题时发挥着不可或缺的作用。…

【回溯 代数系统】679. 24 点游戏

本文涉及知识点 回溯 代数系统 LeetCode679. 24 点游戏 给定一个长度为4的整数数组 cards 。你有 4 张卡片&#xff0c;每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘’, ‘-’, ‘*’, ‘/’] 和括号 ‘(’ 和 ‘)’ 将这些卡片上的数字排列成数学表达式…

【C#】WPF加载浏览器

结果展示 下载SDK 前端代码 红色框住的为添加代码 <Window x:Class"WPFwebview.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://…

TCP四次挥手——断开连接 滑动窗口-流量控制

四次挥手 在TCP的四次挥手中&#xff0c;其重要作用就是释放客户端和服务器的连接。 这里的一些参数非常重要&#xff0c;因为这些参数的作用是为了表达TCP四次挥手断开连接的过程。 其中的参数如下 1.FIN&#xff1a;FIN (Finish) 是TCP协议中的一个标志位&#xff0c;用于…

推荐网站(9)pixabay免费可商用的图片、视频、插画、矢量图、音乐

今天推荐一款可以免费可商用的图片、视频、插画、矢量图、音乐的资源网站&#xff0c;这里面的所以东西都是免费的&#xff0c;并且可以商用。对那些做视频剪辑的人来说帮助非常大。它里面的资源非常的丰富&#xff0c;质量也高。 比如搜索下雨 链接直达&#xff1a;https://pi…

解决webstorm没有vue语法提示;webstorm没有代码提示

解决webstorm没有vue语法提示&#xff1b;webstorm没有代码提示 使用webstorm 2023.x 开发vue项目。发现死活没有vue语法提示&#xff0c;即便是npm install、清理缓存。对比其他vue项目却有语法提示&#xff0c;最后发现依赖库被忽略了&#xff1a; 删除掉node_modules 的忽略…

huggingface:利用git克隆目标资源

前言 因为有很多模型资源都被放在了huggingface上&#xff0c;为了下载它们&#xff0c;着实让一个不懂git的人犯了难&#xff0c;绕了很多远路&#xff0c;甚至将不需要解决的问题也都拿上了台面&#xff0c;因此我将在本篇博客中记载一些关于【huggingface】中利用git克隆目标…

apisix3.9.1 和 dashboard 离线安装

服务器配置 centos7 linux x86 64 前置 需要将离线安装包上传到服务器上 {上传目录 /root/apisix-soft/ } 【建议:优先上传etcd-*.jar \ apisix-*.rpm \ cyrus-*.rpm \ openldap-*.rpm 等安装好apisix后再上传apisix-dashboard-*.rpm】 可以自行网上寻找&#xff0c;或找一台可…

Python接口自动化测试之动态数据处理

在前面的知识基础上介绍了在接口自动化测试中&#xff0c;如何把数据分离出来&#xff0c;并且找到它的共同点&#xff0c;然后依据这个共同点来找到解决复杂问题的思想。我一直认为&#xff0c;程序是人设计的&#xff0c;它得符合人性&#xff0c;那么自动化测试的&#xff0…

使用命令查看电脑最大支持物理内存容量

一、Windows 系统 以管理员身份运行 cmd C:\WINDOWS\system32>wmic memphysical get maxcapacity /format:value将返回值除以1024&#xff0c;再除以1024&#xff0c;即本机最大支持的内存容量 或一行命令直接获取返回值 for /f "tokens2 delims" %I in (wmic…

怎么给视频加水印?2招轻松搞定

在数字媒体时代&#xff0c;视频水印作为一种有效的版权保护手段&#xff0c;被广泛应用于各种场景。给视频添加水印不仅可以防止内容被恶意盗用&#xff0c;还能增加视频的辨识度&#xff0c;提升品牌形象。本文将为您介绍2种简单易行的方法&#xff0c;教您怎么给视频加水印&…

保研机试之【动态规划】

本文为博客&#xff1a;动态规划解题套路框架 | labuladong 的算法笔记 的笔记 前言 动态规划问题的一般形式就是求最值&#xff0c;求解动态规划的核心问题是穷举。动态规划三要素为&#xff1a;最优子结构、重叠子问题、状态转移方程。首先要判断&#xff0c;该问题是否具有…