当前位置: 首页 > news >正文

BBS-个人博客项目完整搭建、BBS多人博客项目基本功能和需求、项目程序设计、BBS数据库表结构设计、创建BBS表模型

一、BBS-个人博客项目完整搭建

项目开发流程
一、项目分类
现在互联网公司需要开发的主流web项目一般分为两类:面向互联网用户,和公司内部管理。面向互联网用户: C(consumer)端项目
公司内部管理:B(business)端项目还有一类web应用,基本采用基于角色的权限控制,不同的员工在这套系统中拥有不同的权限,
适用于公司内部管理。基于权限的后台关系系统:RBAC权限管理系统二、项目开发模式分类
最常见的两类为瀑布开发模式和敏捷开发模式。
1、瀑布开发模式瀑布开发模式是一种更倾向于严格控制的管理模式,要求在提出需求之后,充分完成项目的规划,各阶段都要经过严格的评审,只有当一个阶段的需求完成得非常好时才能进入下一个阶段。但是瀑布开发模式开发的失败率较高,且周期较长,于是就产生了敏捷开发模式。2、敏捷开发模式敏捷开发模式的核心是迭代开发,它将一个项目完整的开发流程分为了几个周期(也可以说是版本),由于每个版本的开发流程相似,看上去相当于一个重复迭代的过程。这么开发的好处是,使一个大的项目能在较短时间内上线,并在后续对它进行不断地迭代和优化。3、项目开发流程-立项-需求分析-原型图(产品画的)-切图-技术选型,数据库架构设计-前后端协同开发-上线测试服务器联调-测试-修改bug-上线运行

二、BBS多人博客项目基本功能和需求

# 开发任意的项目第一个阶段就是弄清楚你要开发什么功能# 一个项目最重要的是表结构的设计,大部分时间都是用来设计表.
# 你在企业中对于一个完成的项目写代码的时间大概有个30%,其余的时间都用来做铺垫
比如:产品需求的确定,技术选型,数据库设计...# 注册登录功能
"""1. 用户表(你可以自己创建,也可以使用auth_user表)扩展auth_user表phone avatar:用来存储头像的地址create_time:用户注册的时间...blog_id = OneToOneField(to='blog')	2. 站点表(blog)站点名称站点标题站点样式:存的是css的路径3. 分类表(cate)分类名称blog = ForeignKey(to='blog')	4. 标签表标签名称blog = ForeignKey(to='blog')	5. 文章表(*******************article)文章标题文章摘要文章内容文章发表时间# 1. 通过文章id去点赞表或者评论表中查询# 优化# 2. 在文章表中增加子弹up_num			1down_num		1comment_num	    4# 外键关系子弹cate = ForeignKey(to='cate')	tag  = ManyToManyField(to='tag')blog = ForeignKey(to='blog')	6. 点赞点踩表谁给哪篇文章什么时间点了赞还是踩user		ForeignKey(to='user')	article		ForeignKey(to='article')	is_up			0/1create_timeid  	user_id  	article_id			is_up   create_time1			1			1					0		‘’2			2			1					1		‘’7. 	评论表(comment)谁给哪篇文章在什么时间评论了什么内容user		ForeignKey(to='user')	article		ForeignKey(to='article')	contentcreate_timeparent_id		ForeignKey(to='comment')	parent_id		ForeignKey(to='self')#自关联id  	user_id  	article_id			content   create_time parent_id1			1			1					0		‘’			02			2			1					1		‘’			13			2			1					1		‘’			2子评论!!!评论评论的评论!!!根评论1. Python是世界上最好的语言1.1 PHP是世界上最好的语言1.2 Java是世界上最好的语言无限极分类	category表id				cate_name			pid1				手机/数码			  02				电脑/办公			  0...20					手机通讯			121					运营商				 1...50				5G手机				2051				手机					20...100				128G/5G				50"""

三、项目程序设计

在这里插入图片描述

四、BBS数据库表结构设计

1.用户表:UserInfo

(通过继承AbstractUser类来扩写Auth_user)
•phone:用户的联系方式
•bg_img: 用户的主页背景
•province: 用户的省份
•city: 用户的城市
•gender : 用户的性别
•avatar:用户的头像
•blog:用户的博客站点(外键一对一关联博客表Blog)

2.博客表:Blog

•title:博客标题
•subtitle: 博客子标题
•style:博客样式

3.文章表:Article

•title:文章标题
•head_img: 头像
•description:文章摘要
•content:文章内容
•create_time:文章的创建时间
•modify_time:  文章的修改时间
•up_num :点赞数
•down_num:点踩数
•comment_num:评论数
•blog:属于哪个博客站点(外键关联博客表Blog)
•category:属于哪个分类(外键关联分类表Category)

4.标签表:Tag

•name:标签名
•blog:属于哪个博客站点(外键关联博客表Blog)

5.分类表:Category

•name:分类名
•blog:属于哪个博客站点(外键关联博客表Blog)

6.评论表:Comment

•user:评论的用户(外键关联用户表UserInfo)
•article:该评论属于哪篇文章(外键关联文章表Article)
•content:评论内容
•comment_time: 评论的创建时间
•comment_id:评论的目标id(外键进行自关联)

7.点赞点踩表:UpAndDown

•user:来自哪个用户(外键关联用户表UserInfo)
•article:属于哪篇文章(外键关联文章表Article)
•is_up:点赞还是点踩(根据bool值来判断)
•create_time : 点赞或踩的时间

8.文章标签表: Tag2Article

根据文章与标签的多对多关系手动建立的第三张表
•	tag:标签名(外键关联标签表Tag)
•	article:属于哪篇文章(外键关联文章表Article)

9.轮播图表 Swiper (拓展)

•	image: 轮播图图片名
•	title:轮播图标题
•	img_url: 点击轮播图要跳转的url地址

10.日志表: Log(拓展)

id: 日志id
•	ip: 访问的ip地址
•	time: 访问的时间
•	url: 访问的url
•	device: 访问的浏览器
•	platform:访问的操作系统类型

11.日志表: Log(拓展)

id: 日志id
•	ip: 访问的ip地址
•	time: 访问的时间
•	url: 访问的url
•	device: 访问的浏览器
•	platform:访问的操作系统类型

五、创建BBS表模型

模型层models.py中写入以下orm语句模型来创建表模型

from django.contrib.auth.models import AbstractUser
from django.utils.html import mark_safe
from django.db import models
from markdown import markdown# 日志表
class Log(models.Model):id = models.AutoField(primary_key=True)ip = models.CharField(max_length=64, verbose_name='访问IP', help_text='访问用户的IP地址')time = models.DateTimeField(auto_now_add=True, verbose_name='访问时间', help_text='该用户的访问时刻')url = models.CharField(max_length=64, verbose_name='访问的URL', help_text='该用户访问的URL地址')device = models.CharField(max_length=256, null=True, verbose_name='访问的浏览器', help_text='该用户是用什么浏览器访问的')platform = models.CharField(max_length=256, null=True, verbose_name='访问的系统', help_text='该用户用的是什么操作系统')# 定义这个表中默认显示的字段def __str__(self):return self.ip# 定义这个表在admin后台中显示的别名class Meta:ordering = ['id']verbose_name_plural = '日志'# 用户表
class UserInfo(AbstractUser):avatar = models.FileField(upload_to='avatar/', default='avatar/default.png', verbose_name='头像', help_text='该用户的头像')bg_img = models.FileField(upload_to='bg_img/', default='bg_img/default_bg.png', verbose_name='头像',help_text='该用户的主页背景')province = models.CharField(max_length=32, default='', verbose_name='省', help_text='该用户的省')city = models.CharField(max_length=32, default='', verbose_name='城市', help_text='该用户的市')gender = models.IntegerField(choices=((0, '保密'), (1, '男'), (2, '女')), default=0, verbose_name='性别',help_text='该用户的性别')phone = models.CharField(max_length=11, null=True, default='', verbose_name='联系方式', help_text='该用户的联系方式')blog = models.OneToOneField(to='Blog', on_delete=models.CASCADE, null=True, verbose_name='博客', help_text='该用户的博客')def __str__(self):return self.usernameclass Meta:verbose_name_plural = '用户'# 博客表(个人站点)
class Blog(models.Model):title = models.CharField(max_length=32, verbose_name='博主昵称', help_text='博主昵称')subtitle = models.CharField(max_length=32, verbose_name='子标题/公告', help_text='博客的子标题/公告')style = models.CharField(max_length=32, verbose_name='样式', help_text='该博客独有的样式')  # 此处未启用def __str__(self):return self.titleclass Meta:verbose_name_plural = '博客站点'# 文章表
class Article(models.Model):title = models.CharField(max_length=32, verbose_name='标题', help_text='文章的标题')head_img = models.FileField(upload_to='article_head_img/', default='article_head_img/default_head.png',verbose_name='头图',help_text='文章的头图')description = models.CharField(max_length=128, verbose_name='摘要', help_text='简要描述该文章')content = models.TextField(verbose_name='内容', help_text='文章的内容')markdown = models.TextField(verbose_name='Markdown内容', default='暂无', help_text='文章的Markdown内容')create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间', help_text='该文章的创建时间')modify_time = models.DateTimeField(auto_now=True, verbose_name='修改时间', help_text='该文章的最后修改时间')up_num = models.IntegerField(default=0, verbose_name='点赞数', help_text='该文章的点赞数')down_num = models.IntegerField(default=0, verbose_name='点踩数', help_text='该文章的点踩数')comment_num = models.IntegerField(default=0, verbose_name='评论数', help_text='该文章的评论数')blog = models.ForeignKey(to='Blog', on_delete=models.CASCADE, null=True, blank=True, verbose_name='博客',help_text='该文章属于哪个博客页面')category = models.ForeignKey(to='Category', on_delete=models.CASCADE, null=True, blank=True, verbose_name='分类',help_text='该文章属于哪个分类')tag = models.ManyToManyField(to='Tag', through='Tag2Article',through_fields=('article', 'tag'), verbose_name='标签',help_text='该文章有哪些标签')def get_text_md(self):return mark_safe(markdown(self.content))def __str__(self):return self.titleclass Meta:verbose_name_plural = '文章'ordering = ['id', ]# 标签表
class Tag(models.Model):name = models.CharField(max_length=32, verbose_name='标签', help_text='标签的名字')blog = models.ForeignKey(to='Blog', on_delete=models.DO_NOTHING, null=True, blank=True, verbose_name='博客',help_text='该标签属于哪个博客页面')def __str__(self):return self.nameclass Meta:verbose_name_plural = '标签'# 分类表
class Category(models.Model):name = models.CharField(max_length=32, verbose_name='分类', help_text='分类的名称')blog = models.ForeignKey(to='Blog', on_delete=models.DO_NOTHING, null=True, blank=True, verbose_name='博客',help_text='该分类属于哪个博客页面')def __str__(self):return self.nameclass Meta:verbose_name_plural = '分类'# 评论表
class Comment(models.Model):user = models.ForeignKey(to='UserInfo', on_delete=models.DO_NOTHING, verbose_name='用户', help_text='该评论来自哪个用户')article = models.ForeignKey(to='Article', on_delete=models.CASCADE, null=True, verbose_name='文章',help_text='评论的对象是哪篇文章')content = models.CharField(max_length=256, verbose_name='内容', help_text='评论的内容')comment_time = models.DateTimeField(auto_now_add=True, verbose_name='时间', help_text='评论的时间')comment_id = models.ForeignKey(to='self', on_delete=models.CASCADE, null=True, verbose_name='评论id',help_text='对哪个id的评论进行评论')def __str__(self):return self.contentclass Meta:verbose_name_plural = '评论'# 点赞点踩
class UpAndDown(models.Model):user = models.ForeignKey(to='UserInfo', on_delete=models.CASCADE, verbose_name='用户', help_text='来自哪个用户')article = models.ForeignKey(to='Article', on_delete=models.CASCADE, null=True, verbose_name='文章',help_text='针对哪篇文章')is_up = models.BooleanField(null=True, verbose_name='点赞点踩', help_text='True为点赞,False为点踩')create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间', help_text='点赞点踩的时间')def __str__(self):return self.userclass Meta:verbose_name_plural = '点赞点踩'# 标签、文章关联表
class Tag2Article(models.Model):tag = models.ForeignKey(to='Tag', on_delete=models.SET_DEFAULT, default='', verbose_name='标签', help_text='关联的标签')article = models.ForeignKey(to='Article', on_delete=models.CASCADE, default='', verbose_name='文章',help_text='关联的文章')class Meta:verbose_name_plural = '标签关联文章'# 轮播图表
class Swiper(models.Model):image = models.FileField(upload_to='swiper_img/', default='swiper_img/default.jpg', verbose_name='图片',help_text='轮播图的图片')title = models.CharField(max_length=32, verbose_name='标题', help_text='图片的标题')img_url = models.CharField(max_length=64, verbose_name='URL', help_text='点击图片要跳转的URL地址')def __str__(self):return self.img_urlclass Meta:verbose_name_plural = '轮播图'

django2表设计

from django.db import models"""
先写普通字段
之后再写外键字段
"""
from django.contrib.auth.models import AbstractUser# auth_user的扩展表(用户表)
class UserInfo(AbstractUser):phone = models.BigIntegerField(verbose_name='手机号', null=True)# 头像avatar = models.FileField(upload_to='avatar/', default='avatar/default.png', verbose_name='用户头像')"""给avatar字段传文件对象 该文件会自动存储到avatar文件下 然后avatar字段只保存文件路径avatar/default.png"""create_time = models.DateField(auto_now_add=True)blog = models.OneToOneField(to='Blog', null=True, on_delete=models.CASCADE)# 博客表
class Blog(models.Model):site_name = models.CharField(verbose_name='站点名称', max_length=32)site_title = models.CharField(verbose_name='站点标题', max_length=32)# 简单模拟 带你认识样式内部原理的操作site_theme = models.CharField(verbose_name='站点样式', max_length=64)  # 存css/js的文件路径# 分类表
class Category(models.Model):name = models.CharField(verbose_name='文章分类', max_length=32)blog = models.ForeignKey(to='Blog', null=True, on_delete=models.CASCADE)# 标签表
class Tag(models.Model):name = models.CharField(verbose_name='文章标签', max_length=32)blog = models.ForeignKey(to='Blog', null=True, on_delete=models.CASCADE)# 文章表
class Article(models.Model):title = models.CharField(verbose_name='文章标题', max_length=64)desc = models.CharField(verbose_name='文章简介', max_length=255)# 文章内容有很多 一般情况下都是使用TextFieldcontent = models.TextField(verbose_name='文章内容')create_time = models.DateField(auto_now_add=True)# 数据库字段设计优化up_num = models.IntegerField(verbose_name='点赞数', default=0)down_num = models.IntegerField(verbose_name='点踩数', default=0)comment_num = models.IntegerField(verbose_name='评论数', default=0)# 外键字段blog = models.ForeignKey(to='Blog', null=True, on_delete=models.CASCADE)category = models.ForeignKey(to='Category', null=True, on_delete=models.CASCADE)tags = models.ManyToManyField(to='Tag',through='Article2Tag',through_fields=('article', 'tag'))# 半自动创建第三章表(文章、标签关联表)
class Article2Tag(models.Model):article = models.ForeignKey(to='Article', on_delete=models.CASCADE)tag = models.ForeignKey(to='Tag', on_delete=models.CASCADE)# 点赞点彩
class UpAndDown(models.Model):user = models.ForeignKey(to='UserInfo', on_delete=models.CASCADE)article = models.ForeignKey(to='Article', on_delete=models.CASCADE)is_up = models.BooleanField()  # 传布尔值 存0/1# 评论表
class Comment(models.Model):user = models.ForeignKey(to='UserInfo', null=True, on_delete=models.CASCADE)article = models.ForeignKey(to='Article', null=True, on_delete=models.CASCADE)content = models.CharField(verbose_name='评论内容', max_length=255)comment_time = models.DateTimeField(verbose_name='评论时间', auto_now_add=True)# 自关联parent = models.ForeignKey(to='self', null=True, on_delete=models.CASCADE)  # 有些评论就是根评论

相关文章:

BBS-个人博客项目完整搭建、BBS多人博客项目基本功能和需求、项目程序设计、BBS数据库表结构设计、创建BBS表模型

一、BBS-个人博客项目完整搭建 项目开发流程 一、项目分类 现在互联网公司需要开发的主流web项目一般分为两类:面向互联网用户,和公司内部管理。面向互联网用户: C(consumer)端项目 公司内部管理:B(business)端项目还有一类web应用&#xff…...

智能设备管理系统对企业设备管理效果有作用吗?

智能设备管理系统对企业设备管理效果具有显著的作用和积极的影响。它可以提高设备管理的效率、准确性和可靠性,帮助企业降低运营成本、提高生产效率,并为企业提供更好的决策支持。以下是智能设备管理系统对企业设备管理效果的几个方面影响: …...

取证--实操

2022年美亚杯个人赛 运用软件DB Browser for SQLite (一款用于查看SQLlite数据库文件的浏览器工具) 火眼,盘古石手机取证系统等 案件详情 于2022年10月,有市民因接获伪冒快递公司的电邮,不慎地于匪徒架设的假网站提…...

react组件化开发详解

React是一个流行的JavaScript库,用于构建用户界面,并且以组件化的方式进行开发。下面将详解React组件化开发的概念和步骤: 组件化思维: 组件化开发是将复杂的用户界面划分为独立、可重用的小部件(组件)。…...

【JVM】对String::intern()方法深入详解(JDK7及以上)

文章目录 1、什么是intern?2、经典例题解释例1例2例3 1、什么是intern? String::intern()是一个本地方法,它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象的引用&#…...

7.1 C/C++ 实现动态数组

动态数组相比于静态数组具有更大的灵活性,因为其大小可以在运行时根据程序的需要动态地进行分配和调整,而不需要在编译时就确定数组的大小。这使得动态数组非常适合于需要动态添加或删除元素的情况,因为它们可以在不浪费空间的情况下根据需要…...

iOS问题记录 - Xcode 15安装低版本iOS模拟器(持续更新)

文章目录 前言开发环境问题描述问题分析1. 定位问题2. 逆向分析2.1. IDA Free2.2. Hopper Disassembler Demo 3. 模拟器日志4. supportedArchs 解决方案最后 前言 最近新需求很多,项目改动很大,开发完成后想测一遍在低版本iOS系统上的兼容性&#xff0c…...

高端百度地图开发2:自定义水滴头像(鼠标事件、API封装对接)

高端百度地图开发系列 高端百度地图开发1:自定义水滴头像(自定义标注覆盖物、Overlay覆盖类) 自定义水滴头像之鼠标事件、API封装对接 高端百度地图开发系列一、添加自定义覆盖物的方法二、对接API数据1.获取API数据(模拟)2.遍历数据3.添加自…...

R语言生存分析(机器学习)(2)——Enet(弹性网络)

弹性网络(Elastic Net):是一种用于回归分析的统计方法,它是岭回归(Ridge Regression)和lasso回归(Lasso Regression)的结合,旨在克服它们各自的一些限制。弹性网络能够同时考虑L1正则…...

【Docker】使用 Docker Registry 搭建自己的 Docker 镜像仓库

使用 Docker Registry 搭建自己的 Docker 镜像仓库 在使用 Docker 进行应用程序的开发和部署时,使用 Docker 镜像仓库是一个很好的实践。它允许集中存储和管理 Docker 镜像,方便团队协作和版本控制。在本文中,将介绍如何使用 Docker Registr…...

Spring 是什么框架?

Spring 是 Java EE 编程领域的一款轻量级的开源框架,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,它的目标就是要简化 Java 企业级应用程序的开发难度和周期。 Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业…...

Azure添加网络接口

添加网络接口的意义 在 Azure 上,为虚拟机添加网络接口的意义包括以下几个方面: 扩展网络带宽:通过添加多个网络接口,可以增加虚拟机的网络带宽,提高网络传输速度和数据吞吐量。实现网络隔离:每个网络接口…...

Linux 内核第一版 (v0.01) 开源代码解读

探索Linux v0.01的内部结构,Linux内核经常被认为是一个庞大的开源软件。在撰写本文时,最新版本是v6.5-rc5,包含36M行代码。不用说,Linux是几十年来许多贡献者辛勤工作的成果。 Linux 内核首个开源版本 (v0.01) 的体积非常小&…...

tp6 v3微信退款

/*** Notes:退款* param $out_trade_no 支付时候订单号(order表 original_bn)两个参数选一个这个要选对* param $out_refund_no 退款订单号* param $total 订单金额* param $refund 退款金额* Time: 2023-08-10*/public function refundMoney($out_trade…...

使用 AndroidX 增强 WebView 的能力

在App开发过程中,为了在多个平台上保持一致的用户体验和提高开发效率,许多应用程序选择使用 H5 技术。在 Android 平台上,通常使用 WebView 组件来承载 H5 内容以供展示。 一.WebView 存在的问题 自 Android Lollipop 起,WebVie…...

Maven基础之仓库、命令、插件机制

文章目录 Maven 仓库中央仓库和本地仓库中央仓库本地仓库 Maven 命令generate 命令compile 命令clean 命令test 命令package 命令install 命令 Maven 插件机制官方插件:Compile 插件Tomcat 7 插件 Maven 仓库 中央仓库和本地仓库 [✎] 简单一点说 中央仓库是一个网…...

【ArcGIS】经纬度数据转化成平面坐标数据

将点位置导入Gis中,如下(经纬度表征位置): 如何利用Gis将其转化为平面坐标呢? Step1 坐标变换 坐标变换,打开ArcToolbox,找到“数据管理工具”->“投影和变换”->“要素”->“投影”…...

使用自己的数据利用pytorch搭建全连接神经网络进行回归预测

使用自己的数据利用pytorch搭建全连接神经网络进行回归预测 1、导入库2、数据准备3、数据拆分4、数据标准化5、数据转换6、模型搭建7、模型训练8、模型预测9、完整代码 1、导入库 引入必要的库,包括PyTorch、Pandas等。 import numpy as np import pandas as pd f…...

103.216.154.X服务器出现漏洞了有什么办法?

服务器出现漏洞是一种严重的安全风险,需要及时采取措施来应对。以下是一些常见的应对措施: 及时更新补丁:确保服务器上的操作系统、应用程序和软件都是最新版本,并及时应用相关的安全补丁,以修复已知的漏洞。 强化访问…...

数据结构:堆的实现(C实现)

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》 文章目录 一、堆二、实现思路1. 结构的定义2. 堆的构建 (HeapInit)3. 堆的销毁 (HeapDestroy)4. 堆的插入 (HeapPush)5. 堆的删除 (HeapPop)6. 取堆顶的数据 (HeapTop)7. 堆的数据个数 (HeapSize…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...