uniapp微信小程序(商城项目)
最近,闲来无事,打算学一下uniapp小程序
于是在跟着某站上学着做了一个小程序,主要是为了学uniapp和vue。某站黑马优购
完成的功能主要有:首页、搜索、分类和购物车。
有人问了为什么没有登录、和添加订单呢?问的很好,下次别再问了
其实我也想跟着视频做,但视频是2021年的,一些uniapp的方法早就更新了,出现了很多问题。
-
如uni.getUserProfile,获取不到头像和昵称,然后查了很多方法才知道,这个方法已经不返回头像和昵称了 最新方法获取头像和昵称在这里
-
然后去调用登录接口去获取token,我也迟迟获取不成功。
https://api-hmugo-web.itheima.net/api/public/v1/users/wxlogin
然后就开始烦躁。就那种跟着视频做也做不出来,满脑子都是为什么不一样呀。
于是我想为什么不自己做一个呢?
于是我就开干,前端的话,不想用黑马优购(看着就来气),于是就去找一个类似uniapp商城的模板,还真找到了。
但里面数据都是静态的。
这时就有一个大问题了,后端服务我可以自己写,数据库我也可以自己创建,但是最重要的数据,不知道从哪里拿,总不能一张一张从网上下载啊!!!!
爬虫获取数据
于是乎我想起来了,很久以前用python学的爬虫,爬一点点数据下来,黑马大佬应该不介意吧
如果大家没学过爬虫,也不用介意,可以看看这篇简单爬取图片数据文章批量爬取图片
如果不想看,也没关系,问题不大,直接上代码。
import json
import urllib.request
import urllib.parse
import pymysqlurl = 'https://api-hmugo-web.itheima.net/api/public/v1/categories'
request = urllib.request.Request(url = url)
#获取响应数据
response = urllib.request.urlopen(request)response = response.read().decode('utf-8')
array = json.loads(response)array = array['message']
conn = pymysql.connect(host="127.0.0.1", user="", password="", database="yun_mall")# 插入数据
cursor = conn.cursor()
#一级分类数据
for item in array:#获取二级分类数据secondArray = item["children"]id = item["cat_id"]name = item["cat_name"]pid = item["cat_pid"]level = item["cat_level"]image = item["cat_icon"]cursor.execute("INSERT INTO category (id, cat_name, cat_level,cat_image,cat_pid) VALUES (%s, %s, %s,%s, %s)",(id, name, level, image, pid))for secondItem in secondArray:id = secondItem["cat_id"]name = secondItem["cat_name"]pid = secondItem["cat_pid"]level = secondItem["cat_level"]image = secondItem["cat_icon"]cursor.execute("INSERT INTO category (id, cat_name, cat_level,cat_image,cat_pid) VALUES (%s, %s, %s,%s, %s)",(id, name, level, image, pid))try:#获取三级分类数据thirdArray = secondItem["children"]except :thirdArray = []for thirdItem in thirdArray:id = thirdItem["cat_id"]name = thirdItem["cat_name"]pid = thirdItem["cat_pid"]level = thirdItem["cat_level"]image = thirdItem["cat_icon"]cursor.execute("INSERT INTO category (id, cat_name, cat_level,cat_image,cat_pid) VALUES (%s, %s, %s,%s, %s)",(id, name, level, image, pid))# 提交更改并关闭连接
conn.commit()
cursor.close()
conn.close()
主要的难度就是爬取分类数据,因为黑马优购的分类是三级分类,要想办法如何拿到分类数据,然后根据分类级别插入到数据库中。
这样分类数据就下载自己的本地使用了。
然后就是相关分类的商品数据和商品图片,这里就跟爬取分类数据类似了,这里就不贴代码了
这样数据就大功告成了,就可以写后端服务代码了。
大功告成
再后来 经过漫长的代码编写之旅,终于基本完成了
最后给大家看一下完成的效果图。
经过我的测试,基本上能正常使用,用来做个毕业设计应该问题不大,但是可能还会出现一些我没发现的bug,但bug存在不是很正常的嘛,我就想问哪个软件没有bug呢,
最后
后面打算把这个商城的后台管理系统干出来,目前找到了一个成熟的后台管理系统,打算在此基础上面改。
后面如果有可能的话(资金够的话),想部署到云服务器上。大家如果有需要的源码,可以来找我哦,至于有偿还是无偿都可以商量,
相关文章:
uniapp微信小程序(商城项目)
最近,闲来无事,打算学一下uniapp小程序 于是在跟着某站上学着做了一个小程序,主要是为了学uniapp和vue。某站黑马优购 完成的功能主要有:首页、搜索、分类和购物车。 有人问了为什么没有登录、和添加订单呢?问的很好…...
Linux的自动化脚本:使用crul命令下载文件,实现断点续传
目录 一、要求 二、解决思路 (一)curl工具可以进行文件传输,可以实现手动断点续传 1、使用 --range 选项: 2. 使用 --continue-at 选项: (二)编写shell脚本调用curl命令,实现自…...
Golang | Leetcode Golang题解之第46题全排列
题目: 题解: func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…...
MySQL数据表记录删操作
删除操作 作用删除表里的记录行(都是整行整行的删除的) 1.单表的删除 语法: delete from 表名 where 要删除的记录筛选条件; 案例:删除员工编号大于203的员工信息 delete from employees where employee_id>203; 2.多表…...
Python浅谈清朝秋海棠叶版图
1、清朝疆域概述: 清朝是我国最后一个封建王朝,其始于1616年建州女真部努尔哈赤建立后金,此后统一女真各部、东北地区。后又降服漠南蒙古,1644年入关打败农民起义军、灭南明,削三藩,复台湾。后又收外蒙&am…...
Linux之线程管理
目录 第1关:创建线程 任务描述 相关知识 使用pthread_create函数创建线程 编程要求 答案: 第2关:线程挂起 任务描述 相关知识 使用pthread_join挂起线程 编程要求 答案: 第3关:线程终止 任务描述 相关知识 使用pthread…...
.net反射(Reflection)
文章目录 一.概念:二.反射的作用:三.代码案例:四.运行结果: 一.概念: .NET 反射(Reflection)是指在运行时动态地检查、访问和修改程序集中的类型、成员和对象的能力。通过反射,你可…...
白平衡简介
文章目录 白平衡的概念白平衡的调节常见的白平衡模式 白平衡的概念 白平衡是指摄影、摄像和显示技术中的一项重要概念,用于调节图像中的白色或中性灰色的色彩,使其看起来在不同光源条件下都是准确的白色或灰色。白平衡的主要目的是确保图像的色彩准确性…...
centos7.9下安装SVN服务
一、安装subversion yum install -y subversion #安装svn mkdir -p /data/svnrepos/java #自定义svn仓库位置/data/svnrepos,自定义一个项目叫svn(这里新建目录) svnadmin create /data/svnrepos/java #创建一…...
iStat Menus for Mac:强大的系统监控工具
iStat Menus for Mac是一款功能强大的系统监控工具,专为Mac用户设计,旨在帮助用户全面了解电脑的运行状态,提高电脑的性能和稳定性。 iStat Menus for Mac v6.73 (1239)中文版下载 该软件可以实时监测CPU使用率、内存占用、网络速度、硬盘活动…...
NumPy 1.26 中文官方指南(四)
附加文件 术语表 原文:numpy.org/doc/1.26/glossary.html (n,) 括号中跟着逗号的数字表示一个具有一个元素的元组。尾随逗号将一个元素元组与括号n区分开。 -1 在维度入口中,指示 NumPy 选择长度,以保持数组元素总数不变。 >>> n…...
Python flask
Flask 是一个用 Python 编写的轻量级 Web 应用框架。它被设计为易于使用和扩展,使其成为构建简单网站到复杂的、动态的 web 应用程序的理想选择。以下是 Flask 的一些基本组件和概念: 主要组件 Flask:框架本身,提供基本的功能来处…...
2-token生成
Token是密码学中的一个概念,可以用作身份验证凭证。在计算机领域中,token可以是一个字符串,用于标识用户的身份和权限。当用户进行身份验证时,他们通常会收到一个token,以便在将来的请求中用作凭证。 在互联网应用程序…...
Flutter 上架如何解决 ITMS-91053 问题
最近,我的 Flutter App 发布到 TestFlight 后,就会收到一封邮件:The uploaded build for YOUR APP has one or more issues. 上面的邮件主要是说,我的 App 缺少了调用 API 的声明,以前从来没看到过,上网一查…...
PgSQL的登录相关(Ubuntu22.04)
一 将用户设为密码登录方式 1 修改用户的密码 sudo -u postgres psql -c "ALTER USER yuhui WITH PASSWORD xinmima;" 2 修改配置,指定用户yuhui使用密码登录 sudo vi /etc/postgresql/16/main/pg_hba.conf local all postgres …...
ThingsBoard处理设备上报的属性并转换为可读属性
一、前言 二、案例 1、AI生成JSON数据体 2、将json数据体直接通过遥测topic发送查看效果 3、可查看目前整个数据都在一起 编辑 4、配置附规则链路 5、对msg的消息值,进行数据的转换,并从新进行赋值。 6、规则链路关联关系 7、再次通过MQTT发送遥…...
03-JAVA设计模式
设计模式GOF23 GOF23是指由设计模式经典名著《Design Patterns: Elements of Reusable Object-Oriented Software》(中译本名为《设计模式——可复用面向对象软件的基础》)的四位作者Erich Gamma、Richard Helm、Ralph Johnson、以及John Vlissides提出…...
Aws Nat Gateway
要点 NAT网关要能访问外网,所以需要部署在有互联网网关的Public子网中。 关键: NAT网关创建是选择子网,一定要选择公有子网(有互联网网关子网) 特别注意: 新建nat网关的时候,选择的子网一定…...
SLICEM是如何将查找表配置为分布式RAM/移位寄存器的
1.首先说SliceM和SliceL如何配置为ROM的 一个SLICE包含4个六输入查找表,因此每个查找表就能存储64bit的数据,要实现128bit的ROM,只需要通过两个LUT就可实现,具体如下表: 2.如何配置成为分布式RAM SLICEM中的LUT如下图ÿ…...
Echarts-知识图谱
Echarts-知识图谱 demo地址 打开CodePen 效果 思路 1. 生成根节点 2. 根据子节点距离与根节点的角度关系,生成子节点坐标,进而生成子节点 3. 从子节点上按角度生成对应的子节点 4. 递归将根节点与每一层级子节点连线核心代码 定义节点配置 functio…...
Scala 05 —— 函数式编程底层逻辑
Scala 05 —— 函数式编程底层逻辑 该文章来自2023/1/14的清华大学交叉信息学院助理教授——袁洋演讲。 文章目录 Scala 05 —— 函数式编程底层逻辑函数式编程假如...副作用是必须的?函数的定义函数是数据的函数,不是数字的函数如何把业务逻辑做成纯函…...
在 Node.js 中配置代理 IP 采集文章
不说废话,直接上代码: const http require(http); const https require(https);// 之后可以使用 http 或 https 模块发起请求,它们将自动使用配置的代理 // 代理ip:https://www.kuaidaili.com/?refrg3jlsko0ymg const proxy …...
ESLlint重大更新后,使用旧版ESLint搭配Prettier的配置方式
概要 就在前几天,ESLint迎来了一次重大更新,9.0.0版本,根据官方文档介绍,使用新版的先决条件是Node.js版本必须是18.18.0、20.9.0,或者是>21.1.0的版本,新版ESLint将不再直接支持以下旧版配置(非扁平化…...
springcloud Ribbon的详解
1、Ribbon是什么 Ribbon是Netflix发布的开源项目,Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的框架。 2、Ribbon能干什么 LB负载均衡(Load Balance)是什么?简单的说就是将用户的请求平摊的分配到多个服务上,从而达…...
超级好用的C++实用库之Des加解密
概述 DES(Data Encryption Standard,数据加密标准)是一种历史悠久的对称密钥加密算法,由IBM公司在1970年代设计,并于1977年被美国国家标准局选作联邦资料处理标准。DES使用56位密钥对64位的数据块进行操作,…...
关于MCU核心板的一些常见问题
BGA植球与焊接(多涂焊油): 【BGA芯片是真麻烦,主要是植锡珠太麻烦了,拆一次就得重新植】https://www.bilibili.com/video/BV1vW4y1w7oNvd_source3cc3c07b09206097d0d8b0aefdf07958 / NC电容一般有两种含义࿱…...
【C++杂货铺】多态
目录 🌈前言🌈 📁多态的概念 📁 多态的定义及实现 📂 多态的构成条件 📂 虚函数 📂 虚函数重写 📂 C11 override 和 final 📂 重载,覆盖(重写…...
(学习日记)2024.04.20:UCOSIII第四十八节:各文件功能概览
写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…...
数据结构-二叉树-堆(二)
一、建堆的时间复杂度问题 1、除了向上调整建堆,我们还可以向下调整建堆。不能在根上直接开始向下调整。这里的条件就是左右子树必须都是大堆或者小堆。我们可以倒着往前走,可以从最后一个叶子开始调整。但是从叶子开始调整没有意义。所以我们可以从倒数…...
身份证二要素核验介绍及使用方法
一、身份证二要素核验简介及重要性 身份证二要素核验是一种重要的身份验证技术,它在现代社会中发挥着至关重要的作用,特别是在涉及个人信息安全和隐私保护的领域。通过身份证二要素核验,我们可以有效地确认个人身份的真实性,从而…...
探索 去中心化的Web3.0
随着区块链技术的日益成熟和普及,Web3(Web 3.0)已经成为一个无法忽视的趋势。Web3不仅仅是一个技术概念,更是一个去中心化、透明、用户数据拥有权归还给用户的互联网新时代。在这篇文章中,我们将深入探讨Web3技术的核心…...
递归的层序遍历
最近遇到一个业务需求:一颗依赖树,其实就是一颗递归树,如何一层一层的数据放在一起,可以近似理解为二叉树的层序遍历。 业务理解为递归树的层序遍历 代码示例: public class RecursionErgodic {public static void…...
pytest使用 pytest-rerunfailures 插件实现失败用例重跑功能
使用 pytest 进行测试时,你可以通过安装并配置 pytest-rerunfailures 插件来实现失败用例重跑功能。以下是一个示例说明: 假设你有一个测试文件 test_example.py 包含如下测试用例: import pytestpytest.mark.parametrize("num",…...
2024/4/23 C++day1
有以下定义,说明哪些量可以改变哪些不可以改变? const char *p; 指针可以改变 值不可以改变 const (char *) p; 语法错误 char *const p; 指针不可以改变 值可以改变 const char* const p; 指针和值…...
OpenHarmony鸿蒙南向开发案例:【智能窗户通风设备】
样例简介 本文档介绍了安全厨房案例中的相关智能窗户通风设备,本安全厨房案例利用轻量级软总线能力,将两块欧智通V200Z-R/BES2600开发板模拟的智能窗户通风设备和燃气告警设备组合成。当燃气数值告警时,无需其它操作,直接通知软总…...
解析‘找不到vcruntime140.dll,无法继续执行代码’的异常修复方法
找不到vcruntime140.dll,无法继续执行代码?这是小事情,这个情况主要是vcruntime140.dll文件丢失了,导致一些程序没办法正常的运行,我们只要修复好这个vcruntime140.dll,文件就可以了。下面一起来了解一下。 一.找不到vcruntime140…...
Golang对接Ldap(保姆级教程:概念搭建实战)
Golang对接Ldap(保姆级教程:概念&搭建&实战) 最近项目需要对接客户的LDAP服务,于是趁机好好了解了一下。LDAP实际是一个协议,对应的实现,大家可以理解为一个轻量级数据库。用户查询。比如ÿ…...
Java23种设计模式-创建型模式之工厂方法模式
工厂方法模式(Factory Method Pattern) 一种创建型设计模式,它定义了一个用于创建对象的接口,让子类决定将哪一个类实例化,从而将产品的实例化推迟到子类中。这种模式的主要角色包括: 角色1:抽…...
Oracle故障处理:ORA-00600错误处理思路
提前说明: 该故障,我只是旁观者。 但处理该故障的DBA工程师,思路很清晰,我非常受教!在此也将经验分享。 目录 项目场景 问题分析 优化建议 项目场景 在某项目数据库运维群,有现场同事发了张报错截图如下…...
微信小程序使用 Vant Weapp 中 Collapse 折叠面板 的问题!
需求:结合Tab 标签页 和 Collapse 折叠面板 组合成显示课本和章节内容,并且用户体验要好点! 如下图展示: 问题:如何使用Collapse 折叠面板 将内容循环展示出来? js中的数据是这样的 代码实现࿱…...
论文写作神器:用ChatGPT写论文的5大高效技巧
在人工智能日渐成熟的今天,ChatGPT已经成为学术界、业界乃至日常生活中不可或缺的工具之一。尤其是对于学生和研究人员而言,ChatGPT能大幅度提高论文写作的效率和质量。然而,许多人尚未掌握如何高效利用这一工具,很多人用chatgpt写…...
微信小程序展示倒计时
html <view class"countdown"> <text>倒计时:</text> <text wx:for"{{countdown}}" wx:key"index">{{item}}</text> </view> ts data: {countdown: [], // 存放倒计时数组 targetTime:…...
什么是用户体验(UX)文案,为什么它很重要?
网上购物如今比以往任何时候都更加相关。所以我们将以此为例说明什么是用户体验(UX)文案,以及为什么它很重要。 假设你去了一个在线商店。你需要执行一系列操作: 找到合适的部分选择你感兴趣的产品弄清楚它们是什么,…...
算法06链表
算法06链表 一、链表概述1.1概述1.2链表的组成部分:1.3链表的优缺点: 二、链表典例力扣707.设计链表难点分析:(1)MyLinkedList成员变量的确定:(2)初始化自定义链表:&…...
第十七章 数据管理和组织变革管理
17.2 变革法则 1)组织不变革,人就变。 2)人们不会抗拒变革,但抵制被改变。 3)事情之所以存在是惯性所致。 4)除非有人推动变革,否则很可能止步不前。 5)如果不考虑人的因素…...
基于harris角点和RANSAC算法的图像拼接matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ....................................................................... I1_harris fu…...
C++感受6-Hello World 交互版
变量、常量输入、输出、流getline() 函数读入整行输入Hello() 函数复习新定义函数 Input() 实现友好的人机交互还有 “痘痘” 为什么挤不到的分析…… 1. DRY 原则简介 上一节课,我们写了两版“问候”程序。第一版的最大问题是重复的内容比较多,每一次问…...
02_c/c++开源库ZeroMQ
1.安装 C库 libzmq sudo apt install libzmq3-dev 实例: https://zeromq.org/get-started/?languagec&librarylibzmq# 编译依赖: pkg-config --cflags --libs libzmq or cat /usr/lib/x86_64-linux-gnu/pkgconfig/libzmq.pc -isystem /usr/include/mit-krb5 -I/usr/in…...
计算机视觉 CV 八股分享 [自用](更新中......)
目录 一、深度学习中解决过拟合方法 二、深度学习中解决欠拟合方法 三、梯度消失和梯度爆炸 解决梯度消失的方法 解决梯度爆炸的方法 四、神经网络权重初始化方法 五、梯度下降法 六、BatchNorm 七、归一化方法 八、卷积 九、池化 十、激活函数 十一、预训练 十二…...
【MHA】MySQL高可用MHA源码1-主库故障监控
1 阅读之前的准备工作 1 一个IDE工具 ,博主自己尝试了vscode安装perl的插件,但是函数 、变量 、模块等都不能跳转,阅读起来不是很方便。后来尝试使用了pycharm安装perl插件,阅读支持跳转,自己也能写一些简单的测试样例…...
嵌入式——AStyle格式化工具
🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 keil配置快捷键配置 AStyle(Artistic Style)是一个开源的代码自动格式化工具,可以用于自动化代…...
以太ETH链市值机器人
在数字资产交易市场的浪潮中,如何高效地管理市值、提升交易流动性并保障资金安全,一直是交易所和项目方关注的焦点。市值管理机器人飞机//aishutuyu以太ETH链市值机器人凭借其卓越的功能和强大的安全保障,为数字资产交易市场带来了革命性的变…...
游戏行业被攻击的原因、攻击种类及合适的服务器
很多游戏刚上线没多久就频繁遭到同行恶意攻击。在相关数据报告中,2023年上半年遭受DDoS攻击的行业中,游戏行业占到40%,而且攻击方式、攻击频率、攻击峰值呈明显上升趋势。很多充满创意的游戏开发公司刚才开发上线一个很有特色的产品ÿ…...
批量下载huggingface的仓库全部权重文件
下载huggingface的仓库全部权重文件 配置和下载git-lfs **ubuntu:**sudo apt-get install git-lfs 其他: 下载git-lfs Releases git-lfs/git-lfs (github.com) 配置: export PATH$PATH://home/software/lfs/git-lfs-3.5.1/ # 其中目录为你文件夹的目…...
RuoYi-Vue-Plus (Logback 和 logback-plus.xml 、p6spy)
项目后本地日志 一、logback依赖 打开最外层的 pom.xml,查看 SpringBoot的依赖配置。 <dependencyManagement><dependencies><!-- SpringBoot的依赖配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>s…...
Spring Cloud系列—Spring Cloud Gateway服务网关的部署与使用指南
Gateway网关 文章目录 Gateway网关1. 网关基本简介1.1 什么是网关1.2 为什么需要网关? 2. 快速搭建gateway网关2.1 创建新模块2.2 引入依赖2.3 编写启动类2.4 配置路由规则2.5 测试 3. 路由过滤4. 过滤器4.1 简介4.2 网关过滤器4.2.2 种类 4.3 自定义过滤器4.3.1 自…...
什么是蜜罐,在当前网络安全形势下,蜜罐能提供哪些帮助
在当前的互联网时代,网络安全威胁日益严峻,攻击手段层出不穷。为了应对这些威胁,网络安全专家们不断探索新的防御手段,在过去的几年里,一种更加积极主动的网络安全方法正在兴起。蜜罐技术便是这样一种备受瞩目的主动防…...
C++ STL概念之 序列式容器3(string)
string 常用接口 operator string (1) string& operator (const string& str);c-string (2) string& operator (const char* s);character (3) string& operator (char c);initializer list (4) string& operator (initializer_list<char> il); …...
c++中关于std::function的使用
文章目录 1.介绍2.使用方式2.1头文件2.2普通函数使用2.3 函数简单使用2.4 包装模板函数2.5 包装函数对象2.6 包装lamda表达式2.7 包装类成员函数 1.介绍 std::function是一个函数指针,可以指向任何函数,使用方法如下所示 2.使用方式 2.1头文件 #incl…...
一步步教您轻松搭建YOLO训练环境(视频教程)
一步步教您轻松搭建YOLO训练环境 YOLO(You Only Look Once)是一种流行的实时目标检测算法。为了安装和部署YOLO的训练环境,你需要按照以下步骤进行操作: 一、前期准备 确定硬件要求:YOLO通常在具有GPU的计算机上运行…...
综合性练习-验证码
1. 验证码案例 随着安全性的要求越来越高,目前项目中很多都使用了验证码,验证码的形式也是多种多样,更复杂的图形验证码和⾏为验证码已经成为了更流⾏的趋势. 2. 需求 界面如下图所示 1. 页面生成验证码 2. 输入验证码,点击提交,验证用户输入验证码是否正确,正确则进行页面跳…...
Python——IO编程
IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。 比如你打开浏览器,访问新浪…...