CSDN学习笔记总索引(2024)——我的创作纪念日(1024)

news2024/9/24 9:25:54

从2021-05-21至2024-03-21,我的CSDN博文学习笔记中,收集并展示浏览阅读,点赞收藏评论等数据,以浏览阅读量排逆序展示。


(笔记模板由python脚本于2024年03月21日 10:07:07创建,本篇笔记适合熟悉Python,对其基本数据类型字符串str、数值型(int, float)列表list、元组tuple、字典dict可以熟练应用,认识Linux获取Html文本指令crul、会使正则模块re的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


2021-05-21至2024-03-21
学习笔记索引(all)
(收集并展示浏览阅读,点赞收藏评论等数据)


本文质量分:

96 96 96

本文地址: https://blog.csdn.net/m0_57158496/article/details/136768180

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 学习笔记索引(all)
    • 1、思路解析
    • 2、笔记索引列表
      • 2.1 浏览阅读量小于5000的笔记
      • 2.2 浏览阅读量小于1000的笔记
      • 2.3 浏览阅读量小于800的笔记
      • 2.4 浏览阅读量小于300的笔记
    • 3、完整源码(Python)


◆ 学习笔记索引(all)


1、思路解析


  我用Linux的curl指令获取HTML5页面源文本,用 P y t h o n Python Python的re模块从中提取数据,按阅读浏览量逆序展示我的CSDN博文笔记“点赞收藏评论”的数量及笔记摘要等信息。

  在我的“1024纪念日”之际,经过部分代码“重构”优化,完成了我的“CSDN博文笔记总索引”的2024版本蜕变。(查看2023版本的样子请点击这里跳转)

  本笔记的 M a r k D o w n MarkDown MarkDown文本源码,是由Python脚本csdn_myBlogReadedSort.py自动生成的。只要固化好脚本,以后需要更新本笔记数据,只需键入python csdn_myBlogReadedSort.py指令就可以了,将代码输出的文本粘贴到本笔记编辑框覆盖原有源码文本就可以了。


  • 脚本运行指令截屏图片
    在这里插入图片描述
    在这里插入图片描述



回页目录


2、笔记索引列表


  本次共计收集 8 篇博文笔记信息,总阅读量0.98w。数据于2024年03月21日 10:07:07完成采集,用时13.27秒。


2.1 浏览阅读量小于5000的笔记

  • 002
    标题:聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )
    (浏览阅读 3.8k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124539589
    点赞:4 收藏:2 评论:3
    摘要:聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )_屏蔽词库。
    首发:2022-05-02 13:02:39
    最后编辑:2022-05-21 06:10:42

  • 001
    标题:神奇的兔子数列——算法学习笔记
    (浏览阅读 2.5k )
    地址:https://blog.csdn.net/m0_57158496/article/details/127481558
    摘要:这是我参加“14天阅读挑战赛”第一周第二篇点击查看“14天阅读挑战赛”详情,《趣学算法第二版》1.4 神奇的兔子数列。
    首发:2022-10-23 22:46:00
    最后编辑:2022-10-23 23:04:53



回页目录



2.2 浏览阅读量小于1000的笔记

  • 003
    标题:练习:任意多行字条串拆分数值求和&冒泡排序&两数的最大公约数和最大公倍数
    (浏览阅读 932 )
    地址:https://blog.csdn.net/m0_57158496/article/details/121585855
    摘要:CSDN2021-11-27“每日一练”。

  • 002
    标题:CSDN博文中的灰白背景文字块叫“引用”
    (浏览阅读 930 )
    地址:https://blog.csdn.net/m0_57158496/article/details/123265876
    评论:8
    摘要:CSDN博文中的灰白背景文字块_csdn灰块。
    首发:2022-03-03 22:40:19
    最后编辑:2022-03-31 16:07:29

  • 001
    标题:X 进制转十进制黄金万能算法
    (浏览阅读 818 )
    地址:https://blog.csdn.net/m0_57158496/article/details/130168776
    点赞:4 收藏:3 评论:4
    摘要:单纯、混合进制能吃,真正的黄金万能转换。
    首发:2023-04-15 13:16:57
    最后编辑:2023-04-30 12:00:43



回页目录



2.3 浏览阅读量小于800的笔记

  • 001
    标题:Python 异常类型捕获( try … except 用法浅析)——Don‘t bare except (不要让 except 裸奔)
    (浏览阅读 501 )
    地址:https://blog.csdn.net/m0_57158496/article/details/130997686
    摘要:不要让 except 裸奔。
    首发:2023-06-01 23:04:07
    最后编辑:2023-07-06 19:25:30



回页目录



2.4 浏览阅读量小于300的笔记

  • 002
    标题:类属性修改(为什么python类不具备被赋值能力?)
    (浏览阅读 164 )
    地址:https://blog.csdn.net/m0_57158496/article/details/134417589
    摘要:为什么python类不具备被赋值能力?,用魔术方法收集实参,在类中可以定义方法处理实际参数,实现对类“赋值”。
    首发:2023-11-15 13:04:46
    最后编辑:2023-11-15 14:04:10

  • 001
    标题:数学王国找寻另一半:求一个整数的真因子总和,算法优化解决方案超时问题
    (浏览阅读 149 )
    地址:https://blog.csdn.net/m0_57158496/article/details/133635207
    评论:1
    摘要:数学王国找寻另一半,求一个整数的真因子总和。
    首发:2023-10-07 12:22:57
    最后编辑:2023-10-07 14:01:07



回页目录


3、完整源码(Python)

(源码较长,点此跳过源码)

#!/sur/bin/nve python
# coding: utf-8
from traceback import format_exc # 加载异常源码追踪(traceback.format_exc)方法。
from time import localtime 
from os import system
from re import findall
from random import sample

    
myDataPath = '/sdcard/Documents/csdn/' # 数据路径。
myUrlRoot = 'https://blog.csdn.net/m0_57158496/article/details/' # 笔记id前缀。
timeStamp = lambda: ''.join([f"{i:0>2}" for i in localtime()[2:6]]) # 时间戳(日时分秒)。
strDate = lambda x=localtime(): ' '.join([f"{x[0]}{x[1]:0>2}{x[2]:0>2}日", ':'.join([f'{i:0>2}' for i in localtime()[3:6]])]) # 字符串格式化当前日期时间(中文年月日,英文时分秒)。


def tipRuning() -> None:
    ''' “程序正在运算……”提示函数 '''
    from time import time
    k = int(str(time())[-2:])%26
    print(' '*40, end='\r')
    print(f"{' '*k}{'程序正在运算……'}", end='\r')


def getIds() -> list:
    ''' 获取博文id总列表 '''
    textId = []
    
    for year in range(2021, localtime()[0]+1): # 多个文本循环读取博文笔记id。
        with open(f"{myDataPath}csdn_{year}_publishFootprint.txt") as f:
            textId += f.read().split('\n')[2:] # 去除文本前两行字段字符串。
        
    ids = [(i.split('\\')[2], i.split('\\')[-2]) for i in textId]
    print(f"\n{f' 已收集到{len(ids)}条博文笔记id ':.^33}\n")
    return ids
    

def getReaded(Id: str) -> zip:
    ''' 获取博文阅读量等数据 '''
    filename = f"{myDataPath}temp/tempHtmlText.txt"
    system(f"curl -s {myUrlRoot}{Id} > {filename}") # 获取页面文本并存入文本文件。

    with open(filename) as f:
        textHtml = f.read().split('<li class="tool-item tool-item-bar">')[0] # 读取页面超文本,并截取数据文本,加快数据提取速度。

    fields = '浏览阅读', '标题', 'ID', '作者', '点赞', '收藏', '评论', '摘要', '首次发布', '最后编辑'
    author = findall(r' var nickName = "(.+)";', textHtml) # 摘取作者。

    if not author: # 提取博文笔记作者不为空,选取第一个。
        print(f"\n“{myUrlRoot}{Id}”\n{'地址可能有误!':~^35}")
        input(f"\nAuthor: {author}")
        return zip(fields, ['']*len(fields))
    else:
        author = author[0]
        	
    articleTitle = findall(r'var articleTitle = "(.+)";', textHtml)[0] # 摘取文章标题。
    articleReaded = findall(r'<meta name="description" content="(.*)">', textHtml)[0]
    
    
    for i in list('!……——')+['U3000', '目 录', ' ', '  ']:
        articleReaded = articleReaded.replace(i, '。') # 替换句末符号为“。”。
    articleReaded, abstract = articleReaded.split('。')[:2] # 摘取含有阅读量、点赞和收藏、文章摘要的文本。    
    
    for i in ['我的CSDN主页', 'Python 官网', '2021年「博客之星」评选开始投票开启']: # 我的博文无效摘要。
        if i in abstract:
            abstract = '' # 摘要如果含无效字符,令摘要为空。
            break 
    abstract = abstract.strip() # 去除摘要前后空格。
    articleReaded = findall(r'[\d\.kw]+', articleReaded) # 摘取阅读量、点赞和收藏数据。
    readedLong = len(articleReaded) # len函数获取数据长度。    
    match readedLong: # 数据赋值。
        case 0:
            print(f"\n“{myUrlRoot}{Id}”\n{'地址可能有误!':~^35}")
            input(f"\n数据{articleReaded}")
            return zip(fields, ['']*len(fields))
        case 2:
            readed = articleReaded[0]
            thumbsUp = articleReaded[-1]
            collect = 0
        case 1:
            readed = articleReaded[0]
            thumbsUp, collect = 0, 0
        case 2:
            readed = articleReaded[0]
            thumbsUp = articleReaded[-1]
            collect = 0
        case 3:
            readed = articleReaded[0]
            thumbsUp = articleReaded[1]
            collect = articleReaded[-1]

    readed = int(float(readed[:-1])*1000) if readed[-1] == 'k' else int(float(readed[:-1])*10000) if readed[-1] == 'w' else int(readed) # 三元操作语句嵌套还原阅读量为整型。
    comments = findall(r'<span class="count">\n\s*([\d\.kw]*)\n\s*</span>\n\s*</a>\n\s*<div class="tool-hover-tip"><span class="text space">评论</span></div>', textHtml)[0]
    firstEditTime = ''.join(findall(r'<div class="up-time"><span>于&nbsp;([\d\s\-:]+)&nbsp;首次发布</span></div>', textHtml))
    reeditTime = ''.join(findall(r'<span class="time">已于&nbsp;([\s\d\-:]+)&nbsp;修改</span>', textHtml))
    datas = readed, articleTitle, Id, author, thumbsUp, collect, comments, abstract, firstEditTime, reeditTime
    return zip(fields, datas)


def readSort():
    ''' 阅读量排序列表 '''
    from time import time 
    start = time()
    ids = getIds()
    yes = input(f"\n{'':>12}程序调试?(Y)_").strip().upper()
    ids = sample(ids, k=8) if yes == 'Y' else ids # 随机取样8个id,调试代码。
    readeds = []

    print() # 打印空行。
    for i in ids: # 数据清洗。
        tipRuning() # 正在提取阅读量排序操作提示打印。
        articleInfo = {k: v for k,v in getReaded(f"{i[0]}") if v and v != '0'} # 剔除空值数据项,生成博文笔记浏览阅读等信息字典。articleInfo

        if not articleInfo.get('摘要') and i[1] != articleInfo['标题']:
            articleInfo['摘要'] = i[1]
        
        if articleInfo['浏览阅读']: # 提取“浏览阅读”数据不为空,收集数据。
            readeds += [articleInfo]

    readeds.sort(reverse=True, key=lambda x: x['浏览阅读']) # 按浏览阅读排降序。
    #print('\n\n'.join(map(str, readeds))) # 数据字典直接终端屏幕打印。
    S = time() - start # 计算提取博文笔记阅读量排序操作用时。
    S = f"{S//60:.0f}{S%60:.2f}秒" if S > 60 else f"{S%60:.2f}秒" # 格式化用时用时数据。
    return readeds, f"本次共计收集 {len(readeds)} 篇博文笔记信息,总阅读量{sum([i.get('浏览阅读') for i in readeds])/10000:.2f}w。数据于{strDate()}完成采集,用时{S}。"


def strDict(articleInfo: dict) -> str:
    ''' 格式化文章阅读量信息 '''
    d = articleInfo #* *数据字典别名,缩短代码行。
    readed = d.get('浏览阅读')
    
    if readed >= 10000:
        color = 'gold'
        size = 5
    elif 8000 <= readed < 10000:
        color = 'purple'
        size = 4
    elif 6000 <= readed < 8000:
        color = 'scarlet'
        size = 4
    elif 5000 <= readed < 6000:
        color = 'red'
        size = 3
    elif 4000 <= readed < 5000:
        color = 'orange'
        size = 3
    elif 2000 <= readed < 4000:
        color = 'green'
        size = 3
    elif 1000 <= readed < 2000:
        color = 'cyan'
        size = 3
    elif 500 <= readed < 1000:
        color = 'blue'
        size = 3
    elif 100 <= readed < 500:
        color = 'black'
        size = 2
    else:
        color = 'gray'
        size = 2

    readed = f"{readed/10000}w" if readed >= 10000 else f"{readed/1000}k" if 1000 <= readed < 10000 else readed # 格式化千万浏览阅读量数值。
    url = f"{myUrlRoot}{d.get('ID')}"    
    thumbsUp = d.get('点赞', '')
    thumbsUp = f"点赞:{thumbsUp}&emsp;" if thumbsUp else ''
    collect = d.get('收藏', '')
    collect = f"收藏:{collect}&emsp;" if collect else ''
    comment = d.get('评论', '')
    comment = f"评论:{comment}" if comment else ''
    thumbsUps = f"\n{''.join([thumbsUp, collect, comment])}" if thumbsUp or collect or comment else '' 
    abstract = d.get('摘要', '')
    abstract = f"\n摘要:{abstract}。" if abstract else ''
    editTime = f"\n首发:{d.get('首次发布')}\n最后编辑:{d.get('最后编辑')}" if d.get('首次发布') else ''
    return f"标题:<a href='{url}' target=_blank>{d.get('标题')}</a>\n<sub>(浏览阅读 <font color='{color}' size={size}>{readed}</font> )</sub>\n地址:<a href='{url}' target=_blank>{url}</a><font color='gray' size=2>{thumbsUps}{abstract}{editTime}</font>"


def writeHot(readeds: list, filename: str, n: int) -> None:
    ''' 写“我的热博” '''
    hots = [i for i in readeds[0] if i.get('浏览阅读') >= n] # 解析“热博”数据。
    n = n if n < 1000 else f"{n/1000:.2f}k" if n < 10000 else f"{n/10000:.2f}w" # 格式化int。
    
    with open(filename, 'w') as f:
        f.write(f"\n<div id='mybolg'></div>\n\n我的<mark><i><font color=#4F999F>HOT</font></i></mark>博:\n<br><font color='gray' size=2>&emsp;&emsp;{readeds[1]}阅读量不小于<b>{n}</b>的有${len(hots)}$篇。</font>\n<br>")
        
        for k,i in enumerate(hots):
            
            f.write(f"\n\n- {k+1:0>3}\n{strDict(i)}")
        
        f.write(f"\n\n<hr>\n\n<center><font size=3 color='gray'>推荐条件</font><i><mark><font color=#4F999F size=4>阅读量突破<b>{n}</b></font></mark></i></center>\n\n<center><font color='gray' size=2>(<a href='https://blog.csdn.net/m0_57158496/article/details/136768180' target='_blank'>更多热博</a>,请点击蓝色文字跳转翻阅)</font></center>\n")


def writer(readeds, sortedName):
    ''' 将排序后的浏览阅读数据写入HTML5文本 '''
    reader = '熟悉Python,对其基本数据类型字符串str、数值型(int, float)列表list、元组tuple、字典dict可以熟练应用,认识Linux获取Html文本指令crul、会使正则模块re'
    title = '学习笔记索引(all)'
    t = localtime() # 获取当前时间九位数组。
    title1 = f"2021-05-21至{'-'.join([f'{i:0>2}' for i in t[:3]])}"
    title2 = '收集并展示浏览阅读,点赞收藏评论等数据'
    headModel = f"从{title1},我的CSDN博文学习笔记中,{title2},以浏览阅读量排逆序展示。\n<div id='top'></div>\n<hr>\n\n<font color='gray' size=2>(笔记模板由python脚本于{strDate()}创建,本篇笔记适合<font color=#4F999F>{reader}</font>的coder翻阅)\n\n{open(f'{myDataPath}csdn_blogHead.txt').read()}\n\n<hr><hr>\n<center><font color='gray' size=2></font>{title1}</center>\n<center><b><font color=#4F999F size=5>{title}</font></b></center>\n<center><font color='gray' size=2>({title2})</font></center>\n\n<hr><hr>\n\n本文质量分:<center><font color=#4F999F size=5>【 <b>$96$</b> 】</font></center>\n本文地址:<a href='https://blog.csdn.net/m0_57158496/article/details/136768180'>https://blog.csdn.net/m0_57158496/article/details/136768180</a>\n\nCSDN质量分查询入口:<a href='http://www.csdn.net/qc'>http://www.csdn.net/qc</a></center>"
    goContents = "\n\n<br><hr>\n<center><a href='#contents'>回页目录</a></center>\n<hr><br>"
    bodyFirst = f"\n\n<hr>\n\n<div id='contents'></div>\n\n<center><font color=#4F999F size=5><b>目&emsp;录</b></font></center>\n\n@[TOC]( )\n\n<hr>\n\n# ◆&ensp;{title}\n\n<br>\n\n## 1、思路解析\n\n<br>\n\n&emsp;&emsp;我用Linux的curl指令获取HTML5页面源文本,用$Python$的re模块从中提取数据,按阅读浏览量逆序展示我的CSDN博文笔记“点赞收藏评论”的数量及笔记摘要等信息。\n\n<font color=#4F999F size=4>&emsp;&emsp;在我的“1024纪念日”之际,经过部分代码“重构”优化,完成了我的“<b>CSDN博文笔记总索引</b>”的2024版本蜕变。</font><sub><font color='gray'>(查看2023版本的样子请点击[这里](https://blog.csdn.net/m0_57158496/article/details/129728550)跳转)</font></sub>\n\n&emsp;&emsp;本笔记的$MarkDown$文本源码,是由Python脚本`csdn_myBlogReadedSort.py`自动生成的。只要固化好脚本,以后需要更新本笔记数据,只需键入`python csdn_myBlogReadedSort.py`指令就可以了,将代码输出的文本粘贴到本笔记编辑框覆盖原有源码文本就可以了。\n\n<br>\n\n- `脚本运行指令截屏图片`\n![在这里插入图片描述](https://img-blog.csdnimg.cn/3c23b21c9f9643c780708105e50aab51.jpg =260x)\n![在这里插入图片描述](https://img-blog.csdnimg.cn/20f7784a5e9e44eca56e539fc79f6733.jpg =260x)\n\n{goContents}\n\n## 2、笔记索引列表\n\n<br>\n\n&emsp;&emsp;{readeds[1]}"
    bodyEnd = f"\n\n## 3、完整源码(Python)\n\n<font color='gray' size=2>(源码较长,<a href=\#codes_end>点此</a>跳过源码)</font>\n\n~~~python\n{open(f'{myDataPath}csdn_myBlogReadedSort.py').read()}\n\n~~~\n\n<div id='codes_end'></div>"

    lastBlogTitle, address, lastBlogSummary = open(f'{myDataPath}csdn_{localtime()[0]}_publishFootprint.txt').read().split('\n')[2:3][0].split('\\')[1:4] # 解析上篇博文标题、地址、内容摘要。
    lastBlogUrl = f"{myUrlRoot}{address}"
    tailModel =  f"\n\n<br><hr>\n<center><a href='#top'>回页首</a></center>\n<hr><br>\n\n<font color='red'>\n上一篇:&ensp;\n<a href='{lastBlogUrl}' target='_blank'>{lastBlogTitle}</a><font color='gray'><sub>({lastBlogSummary})</sub></font><br>\n下一篇:&ensp;\n</font>\n\n<br><hr>\n\n{open(f'{myDataPath}csdn_blogTail.txt').read()}\n"

    with open(sortedName, 'w') as f:
        f.write(f"{headModel}{bodyFirst}")
        
        # 分段打印索引列表 #
        levelReadeds = lambda x: [i for i in readeds[0] if x[0] <= i.get('浏览阅读') < x[1]] # 解析“分段”数据。

        def levelWrite(a, b, k):
            levels = levelReadeds((a, b))
            if levels:
                n = len(levels)
            else:
                return
            
            f.write(f"\n\n<br>\n\n ### <font color='gray' size=2>2.{k} 浏览阅读量小于{b}的笔记</font>")
            for i in levels:
                f.write(f"\n\n- {n:0>3}\n{strDict(i)}")
                n -= 1 # 序号递减。
            
            return True

        levelFields = 10000, 8000, 6000, 5000, 2000, 1000, 800, 500, 300, 100, 0
        k = 1 # 分段打印序号初值
        for i in range(len(levelFields)-1):
            flag = levelWrite(levelFields[i+1], levelFields[i], k) # 分段打印。
            if flag:
                f.write(goContents) # 打印跳转目录“按钮”。
                k += 1 # 分段打印序号递增。
        
        f.write(f"{bodyEnd}{tailModel}")


def main():
    ''' 我的csdn博文被阅读量排序主函数,完成hotBlog和readedSort的文本输出。 '''
    print(f"\n{strDate():~^39}\n")
    n = int(input('\nHotBlog基数:'))
    readeds = readSort()
    hotName = f"/sdcard/Documents/csdn/temp/csdn_{timeStamp()}_myHotBlog.txt"
    sortedName = f"/sdcard/Documents/csdn/temp/csdn_{timeStamp()}_myBlogSorted.txt"
    print(readeds[1]) # 打印本次提取博文笔记阅读量排序情况。

    try:
        writeHot(readeds, hotName, n)
        print(f"\n{f' 我的热博文本{hotName}已保存。 ':~^22}\n")
        system(f"ls -l {hotName}")
        writer(readeds, sortedName)
        print(f"\n{f' 我的博文笔记排序文本{sortedName}已保存。 ':~^22}\n")
        system(f"ls -l {sortedName}")
    except Exception as error:
        print(f"\n错误类型:\n{error}\n异常代码:{format_exc()}")

    print(f"\n{strDate():~^39}\n")


if __name__ == '__main__':
    main() # 主程序调用。



回页首


上一篇:  CSDN学习笔记总索引(2024)(从2021-05-21起,截止今天的CSDN学习笔记总索引,以浏览阅读量排逆序展示)
下一篇: 




  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

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

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

相关文章

spring boot3登录开发-2(2短信验证码接口实现)

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 上文衔接 内容简介 短信验证码接口实现 1.依赖导入 2.接口分析 3.实现思路 3.功能实现 创建发送短信…

PTA L2-041 插松枝 代码附注释

人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上&#xff0c;做成大大小小的松枝。他们的工作流程&#xff08;并不&#xff09;是这样的&#xff1a; 每人手边有一只小盒子&#xff0c;初始状态为空。每人面前有用不完的松枝干和一个推送器&#xff0c;每次推送一…

一些刷题需要用的大数据

无符号版本和有符号版本的区别就是有符号类型需要使用一个bit来表示数字的正负。 如果需声明无符号类型的话就需要在类型前加上unsigned。 整型的每一种都分为&#xff1a;无符号&#xff08;unsigned&#xff09;和有符号&#xff08;signed&#xff09;两种类型&#xff08;f…

【小沐学AI】Google AI大模型的一点点学习(Python)

文章目录 1、Google AI简介1.1 Google AI Studio1.2 Bard1.3 PaLM1.4 Gemini1.5 Gemini API1.6 Vertex AI1.7 Gemma 2、Google AI开发2.1 快速入门2.1.1 配置开发环境2.1.2 列出所有模型2.1.3 从文本输入生成文本2.1.4 从图像和文本输入生成文本2.1.5 聊天对话 结语 1、Google …

(vue)新闻列表与图片对应显示,体现选中、移入状态

(vue)新闻列表与图片对应显示&#xff0c;体现选中、移入状态 项目背景&#xff1a;郑州院XX项目首页-新闻展示模块&#xff0c;鼠标移入显示对应图片&#xff0c;且体现选中和移入状态 首次加载&#xff1a; 切换列表后&#xff1a; html: <el-row :gutter"20"…

k8s系列之十五 Istio 部署Bookinfo 应用

Bookinfo 应用中的几个微服务是由不同的语言编写的。 这些服务对 Istio 并无依赖&#xff0c;但是构成了一个有代表性的服务网格的例子&#xff1a;它由多个服务、多个语言构成&#xff0c;并且 reviews 服务具有多个版本。 该应用由四个单独的微服务构成。 这个应用模仿在线书…

javaSwing日记管理系统

一、简介 使用 Java Swing 开发日记管理系统 在今天的博客中&#xff0c;我将向您介绍如何使用 Java Swing 开发一个简单而功能强大的日记管理系统。这个系统将具有登录、注册、找回密码、写日志以及切换主题等功能。我们将使用 MySQL 数据库来存储用户信息和日记内容。 二、…

Springboot集成shiro框架

前言 以前的项目代码&#xff0c;整理记录一下。 一、什么是shiro 官方&#xff1a;Shiro是一个功能强大且易于使用的Java安全框架&#xff0c;可以运行在JavaSE和JavaEE项目中&#xff0c;可执行身份验证、授权、加密和会话管理。 二、Shiro核心组件 1、UsernamePasswordT…

面试真经(运维工程师)

1.熟悉的排序算法有哪些&#xff0c;它们的时间空间复杂度如何? 排序算法主要分为内部排序和外部排序。内部排序指的是数据记录在内存中进行排序&#xff0c;而外部排序则适用于排序的数据量很大&#xff0c;一次不能容纳全部排序记录的情况&#xff0c;需要在排序过程中访问…

【爬虫】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 爬虫 目录&#xff1a; &#xff08;一&#xff09;web自动化和接口自动化 &#xff08;二&#xff09;实战-爬取Boss直聘信息数据

为什么物联网网关需要边缘计算能力?边缘计算应用场景有哪些?

【前言】本篇为物联网硬件系列学习笔记&#xff0c;分享学习&#xff0c;欢迎评论区交流~ 什么是边缘计算&#xff1f; 边缘计算&#xff08;Edge Computing&#xff09;是一种分布式计算范式&#xff0c;旨在将计算和数据存储功能放置在接近数据源或终端设备的边缘位置&#…

一代大神跌落神坛——Java炸了!

曾经它是只手遮天的一大计算机语言.......可现如今&#xff0c;腹背受敌、大势已去&#xff0c;一代神话跌落神坛&#xff01; Java薪水20k降至15k难掩颓势&#xff0c;事业编3k升至3500尽显嫡道风范&#xff01;嫡嫡道道、嫡嫡道道~ 没错&#xff0c;就是它&#xff01;Java…

【C语言】模拟实现 atoi

文章目录 atoi()函数模拟实现思路分析代码呈现 atoi()函数 通过上述cplusplus和MSDN对atoi函数的介绍我们可以得出以下几个关键点 库函数&#xff1a; <stdlib.h>形参&#xff1a;const char * str返回值&#xff1a; int作用&#xff1a;atoi函数是将一个字符串转化成一…

运维篇SHELL脚本实战案例

统计出每个IP的访问量有多少&#xff1f; 检查是否提供了日志文件的路径作为参数。使用awk从日志文件的每行中提取第一个字段&#xff08;假设这是IP地址&#xff09;。使用sort对提取的IP地址进行排序。使用uniq -c统计每个唯一IP地址的出现次数。最后&#xff0c;使用sort -…

Python模块-基础知识

Python模块-基础知识 1.模块分类&#xff1a; &#xff08;1&#xff09;自定义模块&#xff1a; 如果你自己写一个py文件&#xff0c;在文件内写入一堆函数&#xff0c;则它被称为自定义模块&#xff0c;即使用python编写的.py文件 &#xff08;2&#xff09;第三方模块&…

从0到1:Java构建高并发、高可用分布式系统的实战经验分享

文章目录 引言基础架构选择与设计微服务架构分布式储存与计算 高并发处理策略异步处理与消息队列并发控制与资源隔离 高可用性设计与故障恢复冗余与集群化容错与自我修复监控与运维自动化 引言 随着互联网业务的快速发展和技术迭代升级&#xff0c;作为Java架构师&#xff0c;…

springboot企业级抽奖项目业务一(登录模块)

开发流程 该业务基于rouyi生成好了mapper和service的代码&#xff0c;现在需要在controller层写接口 实际操作流程&#xff1a; 看接口文档一>controller里定义函数一>看给出的工具类一>补全controller里的函数一>运行测试 接口文档 在登录模块有登录和登出方…

虚拟内存页表和内存保护

前言 大家好我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第21篇&#xff0c;在这里分享给大家&#xff0c;这篇文章讲虚拟内存和内存之间的页表和内存安全问题。 虚拟内存 前面的文章提到过&#xff0c;程序装载到内存的过程。可以知道&#xff0c;程序并不直接访…

爬虫实战-Python爬取百度当天热搜内容

爬虫实战-Python爬取百度当天热搜内容 学习建议学习目标预期内容目标分解热搜地址热搜标题热搜简介热搜指数小总结 代码实现总结 学习建议 本文仅用于学习使用&#xff0c;不做他用&#xff1b;本文仅获取页面的内容&#xff0c;作为学习和对Python知识的了解&#xff0c;不会…

如何使用Net2FTP+cpolar搭建专属文件共享站点并实现无公网IP远程访问——“cpolar内网穿透”

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…