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应用ÿ…...

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

取证--实操
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系统上的兼容性,…...

高端百度地图开发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…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...

FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...