第15次修改了可删除可持久保存的前端html备忘录:换了一个容器时钟,匹配背景主题:现代深色

第15次修改了可删除可持久保存的前端html备忘录:换了一个容器时钟,匹配背景主题:现代深色

备忘录代码

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>与妖为邻的备忘录</title>
  <style>
    /* <!-- ------------------------备忘录--------------------------- --> */
    textarea {
      font-size: 20px;

      &::placeholder {
        color: rgb(248, 0, 0);
        font-size: 12px;
      }
    }

    h1 {
      text-indent: 7em;

      line-height: 2em;

    }

    sub {
      /* 外边距: 上右下左 */
      margin: 0px 40px 0px 20px;
    }

    .down-div {
      text-indent: 2em;
    }

    .delete {
      color: #ff0101;
      /* 靠右 */
      float: right;
    }

   
    .finish {
     
      /* 下划线 */
      text-decoration: underline;
      text-decoration-color: rgb(255, 0, 0);
      background-color: rgb(220, 226, 241);
      color: rgb(253, 250, 250);
      text-shadow: 1px 1px 1px #030303;
      box-shadow:
        inset -2px -2px 3px rgba(255, 255, 255, 0.6),
        inset 2px 2px 3px rgba(0, 0, 0, 0.6);
      border-radius: 20px;
    }


    /* <!-- ------------------------时钟--------------------------- --> */
    .main {
      color: #f90404b5;
      font-size: 30px;
      position: absolute;
      text-shadow: 1px 1px 1px #030303;
      transform: translate(220%, 2%);

      display: flex;
      justify-content: center;
      align-items: center;
    }

    header {
      width: 40px;
      height: 60px;
      border: 2px solid rgb(0, 0, 0);

      border-radius: 5px;
      position: relative;

    }

    header::after {
      content: "";
      position: absolute;
      width: 100%;
      box-sizing: border-box;
      border: 2px solid transparent;
      bottom: 0;

      filter: blur(2px);
      transition: 1s linear;
      height: var(--s);
      z-index: -1;
    }

    #month::after {
      background: #8854d0;
    }

    #day::after {
      background: #3867d6;
    }

    #hour::after {
      background: #20bf6b;
    }

    #min::after {
      background: #1156a5;
    }

    #sec::after {
      background: #ea270d;
    }

    header::before {
      content: attr(datatext);
      /* 直接注释掉这行可以不显示文字哦 */
      position: absolute;
      width: 100%;
      height: 100%;
      text-align: center;
      color: #ff0a0a;
      font-size: 30px;
      top: 20%;
    
      text-shadow: 1px 1px 1px #030303;
    }

    #year {

      position: absolute;
      font-size: 80px;

      transform: translate(245%, -20%);
      color: #fffb12;
      filter: blur(0.1vw);
    }
  </style>
  <title>Document</title>
</head>

<body>
  <div class="h-div">
    <!-- ------------------------时钟--------------------------- -->
    <div id="year">

    </div>
    <div class="main">
      <header id="month"></header>月
      <header id="day"></header>日
      <header id="hour"></header>:
      <header id="min"></header>:
      <header id="sec"></header>
    </div>





    <!-- ------------------------备忘录--------------------------- -->
    <div class="h1-div">
      <h1>
        备忘录
        <dfn>memo</dfn>
      </h1>

    </div>
  </div>

  <div class="up-div">
    <input type="file" name="inputfile" accept="text/plain, text/css, text/html, text/javascript, text/markdown"
      class="background3D" />
    <textarea class="up-textarea" name="uptextarea" rows="1" cols="30%"
      placeholder="请选择txt、js、css或html文件,文件内容会被自动读取"></textarea>
    <button type="text" class="up-button">添加</button>
    <button id="openButton">打开URL</button>
    <button class="a-href"><a href="https://www.baidu.com/s" target="_blank">百度一下</a></button>
    <button class="a-href"><a href="https://blog.csdn.net/lulei5153?spm=1011.2415.3001.5343"
        target="_blank">与妖为邻</a></button>
    <button id="up-button1" class="delete">对选择删除</button>
    <p>
      <sub>
        护眼背景 &amp;lt;style&amp;gt;
        body { background-color: rgb(110, 123, 108); color: #fff; text-shadow: 1px 1px 1px #000000; }
        &amp;lt;/style&amp;gt;
      </sub>
      <sub> &lt;button class="a-href"&gt;
        &lt;a href="输入网站地址" target="_blank"&gt;
        输入网站名称
        &lt;/a&gt; &lt;/button&gt;
      </sub>
    </p>
  </div>
  <hr>
  <div class="down-div">
  </div>
  <script>
    var monbox = document.getElementById("month")
    var daybox = document.getElementById("day")
    var hourbox = document.getElementById("hour")
    var minbox = document.getElementById("min")
    var secbox = document.getElementById("sec")
    var yeardiv = document.getElementById("year")
    var count = 0
    function clock() {
      var d = new Date()
      var mon = d.getMonth()
      var day = d.getDate()
      var hour = d.getHours()
      var min = d.getMinutes()
      var sec = d.getSeconds()
      var year = d.getFullYear()

      monbox.style.setProperty('--s', String(mon / 12 * 100) + '%') //生成填充背景颜色的比例
      monbox.setAttribute('datatext', ("0" + (mon + 1)).slice(-2)) //生成时间日期的具体文字,个位的数字在前面补0
      var allday = new Date(year, mon + 1, 0).getDate() //计算当前月份有多少天(28,29,30,31)
      daybox.style.setProperty('--s', String(day / allday * 100) + '%')
      daybox.setAttribute('datatext', ("0" + (day)).slice(-2))

      hourbox.style.setProperty('--s', String(hour / 24 * 100) + '%')
      hourbox.setAttribute('datatext', ("0" + (hour)).slice(-2))

      minbox.style.setProperty('--s', String(min / 60 * 100) + '%')
      minbox.setAttribute('datatext', ("0" + (min)).slice(-2))

      secbox.style.setProperty('--s', String(sec / 60 * 100) + '%')
      secbox.setAttribute('datatext', ("0" + (sec)).slice(-2))

      yeardiv.innerText = year // 计算年份数字
    }
    setInterval(clock, 100)


    /*   -- ------------------------备忘录--------------------------- --*/
    /**************************备忘录********************************/
    var uptext = document.querySelector(".up-textarea");
    var addto = document.querySelector(".up-button");
    var text = document.querySelector(".down-div");
    /*************添加事件*****************/
    addto.onclick = function () {
      inserhtml(uptext.value, '');
      // 添加后清空输入框
      uptext.value = '';
      // 焦点放回输入框
      uptext.focus();
      savetodo();
    }
    /*************savetodo函数****************/
    var savetodo = function () {
      let todoarr = [];
      let todojs = {};
      var econtent = document.querySelectorAll('.content');
      for (let index = 0; index < econtent.length; index++) {
        todojs.name = econtent[index].innerHTML;
        todojs.finish = econtent[index].classList.contains('finish');
        todoarr.push(todojs);
        todojs = {};
      }
      save(todoarr);
    }
    var loadtodo = function () {
      let todoarr = load();
      for (let index = 0; index < todoarr.length; index++) {
        inserhtml(todoarr[index].name, todoarr[index].finish ? 'finish' : '');
      }
    }
    /**********************本地持久储存(localStorage)函数*****************************/
    var save = function (arr) {
      /**JSON.stringify(arr) 先将数组转换为字符串   
       *localStorage.todos 然后将字符串保存到本地的todos中*/
      localStorage.todos = JSON.stringify(arr);
    }
    /**
     *读取函数,把todos转成数组
     *然后返回数组*/
    var load = function (arr) {
      var arr = JSON.parse(localStorage.todos);
      return arr;
    }
    /**********************finish样式函数*****************************/
    /**********************按钮点击事件*****************************/
    text.onclick = function () {
      var tg = event.target;
      // 获取父元素下的所有子元素
      var tgkids = tg.parentElement.children;
      /*******************************对复选框的点击事件******************************/
      if (tgkids[0].checked) {
        tgkids[1].classList.add("finish");
      }
      else {
        tgkids[1].classList.remove("finish");
      }
      // 保存更改的样式
      savetodo();
      /*******************************对选择的进行删除********************************************/
      var Select = document.getElementById("up-button1");
      Select.onclick = function () {
        if (confirm("是否删除所选?")) {
          var check = document.getElementsByName("checkbox");
          for (var i = 0; i < check.length; i++) {
            if (check[i].checked) {
              check[i].parentElement.remove();
              i--;
              // 删除后保存
              savetodo();
            }
          }
        }
      }
    }
    var inserhtml = function (val, cls) {
      text.insertAdjacentHTML("beforeend",
        `<div>
                    <input  type="checkbox" name='checkbox'>               
                    <span class='content ${cls}'>${val}</span>   
                </div>`
      )
    }
    loadtodo();
    /*****************************提示弹窗无需点击的函数**********************************************/
    function displayAlert(type, data, time) {
      var prompt = document.createElement("div");
      if (type == "success") {
        prompt.style.width = "200px";
        prompt.style.backgroundColor = "#009900";
      } else if (type == "error") {
        prompt.style.width = "280px";
        prompt.style.backgroundColor = "#990000";
      } else if (type == "info") {
        prompt.style.backgroundColor = " #e6b800";
        prompt.style.width = "600px";
      } else {
        return;
      }
      prompt.id = "prompt";
      prompt.style.textAlign = "center";
      prompt.style.position = "absolute";
      prompt.style.height = "60px";
      prompt.style.marginLeft = "-100px";
      prompt.style.marginTop = "-30px";
      prompt.style.left = "30%";
      prompt.style.top = "5%";
      prompt.style.color = "white";
      prompt.style.fontSize = "25px";
      prompt.style.borderRadius = "20px";
      prompt.style.textAlign = "center";
      prompt.style.lineHeight = "60px";
      if (document.getElementById("") == null) {
        document.body.appendChild(prompt);
        prompt.innerHTML = data;
        setTimeout(function () {
          document.body.removeChild(prompt);
        }, time);
      }
    }
    /**************************打开URL按钮的JavaScript******************************************/
    // 获取打开URL按钮元素
    var openBtn = document.getElementById("openButton");
    // 添加点击事件处理程序
    openBtn.addEventListener('click', function () {
      // 获取文件路径
      // 这里假设您已经有一个函数来获取文件路径,例如 prompt('请输入文件路径', 'D:/前端学习', '_blank');
      var filePath = prompt("请输入网站地址或者本地文件路径", "D:/备忘录信息");
      if (filePath) {
        // 使用window.location对象的assign()方法导航到指定文件
        // window.location.assign(filePath);
        // 或者使用window.open()方法打开新窗口导航到指定文件
        window.open(filePath);
      } else {
        displayAlert('info', '未提供有效的文件路径!', 1500);
        // alert("未提供有效的文件路径!");
      }
    });
    /**************************本地文件读取的函数******************************************/
    window.onload = function () {
      var text = document.getElementsByName('uptextarea')[0],
        inputFile = document.getElementsByName('inputfile')[0];
      //上传文件
      inputFile.onchange = function () {
        console.log(this.files);
        var reader = new FileReader();
        reader.readAsText(this.files[0], 'UTF-8');
        reader.onload = function (e) {
          // urlData就是对应的文件内容
          var urlData = this.result;
          text.value = urlData;
        };
      };
    };
  </script>


</body>

</html>

背景主题代码:

<!DOCTYPE html>
<html lang="zh">
<a class="a-href class-h">备忘录的背景主题:现代深色</a>
<style>
    * {
        /* 外边距: 上右下左 */
        margin: 0px 0px 0px 0px;
        /* 内边距: 上右下左 */
        padding: 0 0 0 0;
        /* 文本颜色 */
        color: #75a8c6;
    }
    body {
        background-color: #2b2b2b;
    }
    /* 鼠标变小手 */
    input,
    button {
        cursor: pointer;
        font-size: 20px;
        padding: 0 5px;
    }
    /* ***********************h-div区************************************* */
    .h-div {
        background: linear-gradient(0.25turn, rgb(110, 123, 108), rgb(204, 232, 207), #f7d6d6);
        /* 3D立体文本的样式 */
        .h1-div {
            h1 {
                dfn {
                    border-radius: 20px;
                    color: #fafafa;
                    text-shadow: 0px 1px 0px #999,
                        0px 2px 0px #888,
                        0px 3px 0px #777,
                        0px 4px 0px #666,
                        0px 5px 0px #555,
                        0px 6px 0px #444,
                        0px 7px 0px #333,
                        0px 8px 7px #001135;
                }
                background-image: linear-gradient(to top left,
                    rgba(0, 0, 0, 0.2),
                    rgba(0, 0, 0, 0.2) 30%,
                    rgba(0, 0, 0, 0));
                box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
                inset -4px -4px 5px rgba(0, 0, 0, 0.6);
                text-shadow: 1px 1px 1px #000000;
                border: 0px solid black;
                text-decoration-color: rgb(0, 0, 0);
            }
        }
    }
    /* **********************up-div区************************************** */
    .up-div {
        /* 圆角 */
        border-radius: 10px;
        input[type="file"] {
            width: 200px;
        }
        textarea {
            line-height: 1.5em;
            background: #303745;
            text-shadow: 1px 1px 1px #000;
            /* text-decoration: underline;
            text-decoration-color: rgb(184, 229, 184); */
            &::placeholder {
                color: #75a8c6;
                text-shadow: 1px 1px 1px #000000;
            }
        }
        p {
            background-color: rgb(199, 237, 204);
            sub {
                text-shadow: 1px 1px 1px #030303;
                box-shadow: inset -2px -2px 3px rgba(255, 255, 255, 0.6),
                    inset 2px 2px 3px rgba(0, 0, 0, 0.6);
            }
            sub:nth-child(1) {
                background-color: rgb(233, 235, 254);
            }
            sub+sub {
                background-color: rgb(227, 237, 205);
            }
        }
    }
    /* 3D背景的样式 */
    .a-href,
    #prompt,
    button,
    input {
        background-image: linear-gradient(to top left,
                rgba(0, 0, 0, 0.2),
                rgba(0, 0, 0, 0.2) 30%,
                rgba(0, 0, 0, 0));
        box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
            inset -4px -4px 5px rgba(0, 0, 0, 0.6);
        border-radius: 10px;
        text-shadow: 1px 1px 1px #000;
        border: 0px solid black;
    }
    a {
        color: green;
        /* 下划线 */
        text-decoration: underline;
        text-decoration-color: green;
        text-shadow: 2px 2px 1px #000;
    }
    .class-h {
        color: #8cd571;
    }
    /* 背景颜色 */
    .up-div {
        background-color: #1c1c1c;
    }
    .time,
    input[type="file"],
    .up-button {
        background-color: #48603f;
    }
    button {
        background-color: #b8815d;
    }
    button:hover,
    input:hover {
        background-color: rgb(255, 2, 2);
    }
    /* 按钮凹进去的样式 */
    button:active,
    input:active {
        box-shadow: inset -2px -2px 3px rgba(255, 255, 255, 0.6),
            inset 2px 2px 3px rgba(0, 0, 0, 0.6);
    }
    /* ***********************down-div************************************* */
    .down-div {
        text-indent: 5em;
        /* background: linear-gradient(0.25turn, #b7efea82, #cacf80ac, #f7d6d6); */
        background: #303745;
        /* 设置复选框样式*/
        input[type="checkbox"] {
            background-color: #b8815d;
            -webkit-appearance: none;
            appearance: none;
            width: 25px;
            height: 25px;
            position: relative;
            margin-right: 10px;
            border-radius: 50%;
        }
        input[type="checkbox"]::after {
            content: "";
            width: 100%;
            height: 100%;
            border: 2px solid #e9f504;
            position: absolute;
            left: -3px;
            top: -3px;
            border-radius: 50%;
        }
        /* 设置复选框点击之后的样式*/
        input[type="checkbox"]:checked::after {
            height: 15px;
            width: 25px;
            border-top: none;
            border-right: none;
            border-radius: 0;
            transform: rotate(-45deg);
            transition: all 0.5s ease-in-out;
        }
        span {
            /* background-color: #515e6f; */
            text-shadow: 1px 1px 1px #000000;
            box-shadow:
                inset -2px -2px 3px rgba(255, 255, 255, 0.6),
                inset 2px 2px 3px rgba(0, 0, 0, 0.6);
        }
    }
    dfn,
    .finish {
        background-color: rgb(220, 226, 241);
        color: rgb(253, 250, 250);
        text-shadow: 1px 1px 1px #030303;
        box-shadow:
            inset -2px -2px 3px rgba(255, 255, 255, 0.6),
            inset 2px 2px 3px rgba(0, 0, 0, 0.6);
    }
    .a-href {
        line-height: 25px;
        background-color: #515e6f;
    }
</style>
</html>

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【安卓】不需要魔法使用AuthenticationApp解决Github报2FA双重验证警告的问题

如果你也收到了类似的警告信息&#xff0c;那就一起启用2FA吧​。 背景介绍 Github提供了四种2FA方式&#xff1a; AuthenticatorApp(今天要分享的就是这个)SMS/Text message: 由于SMS不支持国内手机号, 不可用Security keys: 由于该方式需要物理设备等&#xff0c;不好Githu…

数据库查询3

目录 1. 多表查询 1.1.1 介绍 1.1.2 分类 1.2 内连接 1.3 外连接 1.4 子查询 1.4.1 介绍 1.4.2 标量子查询 1.4.3 列子查询 1.4.4 行子查询 1.4.5 表子查询 2. 事务 2.1 操作 2.2 四大特性 数据库总结2 数据库总结1 1. 多表查询 1.1.1 介绍 多表查询&#xff…

vue3使用最新的属性defineModel实现父子组件数据响应式绑定

子父之间使用v-model双向绑定数据&#xff0c;子组件每次都要写emit和props觉得麻烦&#xff1f;以前&#xff0c;为了使组件支持与v-model双向绑定&#xff0c;它需要&#xff08;1&#xff09;声明prop&#xff0c;&#xff08;2&#xff09;在打算更新prop时发出相应的updat…

Keil导入文件的操作步骤

本文以STM32G431R8T6导入lcd.c文件为例 1 背景 作为最常用的单片机程序编辑工具&#xff0c;全球有超过10万的工程师在使用Keil&#xff0c;但初学者很有可能对Keil的各种信息和操作一无所知&#xff0c;我便是其中一员&#xff0c;由于最近看了很多Keil相关的教程&#xf…

3DGS 其二:Street Gaussians for Modeling Dynamic Urban Scenes

3DGS 其二&#xff1a;Street Gaussians for Modeling Dynamic Urban Scenes 1. 背景介绍1.1 静态场景建模1.2 动态场景建模 2. 算法2.1 背景模型2.2 目标模型 3. 训练3.1 跟踪优化 4. 下游任务 Reference&#xff1a; Street Gaussians for Modeling Dynamic Urban Scenes 1.…

微信小程序之页面导航、生命周期和WXS脚本

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Genome-wide association studies in R

全基因组关联&#xff08;GWA&#xff09;研究扫描整个物种基因组&#xff0c;寻找多达数百万个SNPs与特定感兴趣特征之间的关联。值得注意的是&#xff0c;感兴趣的性状实际上可以是归因于群体的任何类型的表型&#xff0c;无论是定性的&#xff08;例如疾病状态&#xff09;还…

分布式数据实现跨设备数据同步的N个秘密 | 分布式数据管理解析(二)

上期我们给大家带来分布式数据管理如何完成数据存储&#xff0c;数据同步&#xff0c;数据跨端访问&#xff0c;并保证整个过程中跨设备数据安全的解读。 这都得益于分布式数据管理平台抽象出的三大关键技术——分布式数据库&#xff0c;分布式文件系统和融合搜索。 那么这三…

Scrapy IP()类 编程指南(基础)

Scrapy IP()类 编程指南&#xff08;基础&#xff09; IP简介 工欲善其事&#xff0c;必先利其器&#xff0c;在聊Scapy IP类时&#xff0c;我们先要了解IP是什么。 IP指的是Internet Protocol&#xff08;互联网协议&#xff09;的数据包。Internet Protocol是互联网上用于在…

取消Vscode在输入符号时自动补全

取消Vscode在输入符号时自动补全 取消Vscode在输入符号时自动补全问题演示解决方法 取消Vscode在输入符号时自动补全 问题演示 在此状态下输入/会直接自动补全, 如下图 笔者想要达到的效果为可以正常输入/而不进行补全, 如下图 解决方法 在设置->文本编辑器->建议, 取消…

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程 和之前实现的YOLOv2一样&#xff0c;根据《YOLO目标检测》(ISBN:9787115627094)一书&#xff0c;在不脱离YOLOv3的大部分核心理念的前提下&#xff0c;重构一款较新的YOLOv3检测器&#xff0c;来对YOLOv3有…

<蓝桥杯软件赛>零基础备赛20周--第19周--最短路

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周。 在QQ群上交流答疑&am…

OpenCV-28 全局二值化

一、形态学概念 什么是形态学&#xff1f; 1&#xff09;指一系列处理图像型状特征的图像处理技术 2&#xff09;形态学的基本思想是利用一直特殊的结构元&#xff08;本质上是卷积核&#xff0c;且这个卷积核的值只有1和0&#xff09;来测量或提取输入图像中相应的型状或特…

17. Spring Boot Actuator

17. Spring Boot Actuator Spring Boot执行器(Actuator)提供安全端点&#xff0c;用于监视和管理Spring Boot应用程序。 默认情况下&#xff0c;所有执行器端点都是安全的。 在本章中&#xff0c;将详细了解如何为应用程序启用Spring Boot执行器。 启用Spring Boot Actuator …

CAD-autolisp(三)——文件、对话框

目录 一、文件操作1.1 写文件1.2 读文件 二、对话框DCL2.1 初识对话框2.2 常用对话框界面2.2.1 复选框、列表框2.2.2 下拉框2.2.3 文字输入框、单选点框 2.3 Lisp对dcl的驱动2.4 对话框按钮实现拾取2.5 对话框加载图片2.5.1 幻灯片图片制作2.5.1 代码部分 一、文件操作 1.1 写…

架构篇28:业务高可用的保障-异地多活架构

文章目录 应用场景架构模式小结无论是高可用计算架构,还是高可用存储架构,其本质的设计目的都是为了解决部分服务器故障的场景下,如何保证系统能够继续提供服务。但在一些极端场景下,有可能所有服务器都出现故障。例如,典型的有机房断电、机房火灾、地震、水灾……这些极端…

【阿里云服务器数据迁移】 同一个账号 不同区域服务器

前言 假如说一台云服务器要过期了,现在新买了一台,有的人会烦恼又要将重新在新的服务器上装环境,部署上线旧服务器上的网站项目, 但是不必烦恼,本文将介绍如何快速将就旧的服务器上的数据迁移到新的服务器上. 包括所有的环境和网站项目噢 ! 步骤 (1) 创建旧服务器自定义镜像…

AI作画工具 stable-diffusion-webui 一键安装工具(A1111-Web-UI-Installer)

安装 下载最新版本确保你的 NVIDIA 显卡驱动程序是最新的&#xff08;起码不能太老&#xff09;启动安装程序在欢迎屏幕上单击下一步在屏幕上&#xff0c;选择要安装的内容如果你已经安装了 Python 3.10 和 Git&#xff0c;那么可以取消选中如果你不知道这些是什么&#xff0c…

Spring boot + Azure OpenAI 服务 1.使用 GPT-35-Turbo

Azure OpenAI 服务使用 GPT-35-Turbo 先决条件 maven 注意 beta.6 版本 <dependency><groupId>com.azure</groupId><artifactId>azure-ai-openai</artifactId><version>1.0.0-beta.6</version></dependency>问答工具类 pack…

Django介绍

一、介绍 Django是Python语言中的一个Web框架,Python语言中主流的web框架有Django、Tornado、Flask 等多种 优势:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等功能,是一个全能型框架,拥有自己的Admin数据管理后台,第三方工具齐全,性能折中 缺点:…