11.2、基于Django4的可重用、用户注册和登录系统搭建(优化)

news2024/9/19 10:34:47

文章目录

  • 前端界面设计与优化
  • 完善登录界面的视图函数
  • session会话和登出的视图函数
  • 将当前代码推送至Gitee
  • 添加图片验证码

前端界面设计与优化

使用CSS框架 Bootstrap4,Bootstrap将CSS样式和JS都封装好了,可以直接使用。
下面使用的Bootstrap模板来自官方文档:

下述优化使用到的Bootstrap 组件

入门模板
栅格系统
表单组件
警示框

按照Bootstrap官网,将前面界面修改如下:
首页templates/login/index.html:

<!doctype html>
<html lang="zh-CN">
  <head>
    <!-- 必须的 meta 标签 -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap 的 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

    <title>首页</title>
  </head>
  <body>
    <h1>这是首页测试界面</h1>

    <!-- JavaScript 文件是可选的。从以下两种建议中选择一个即可! -->

    <!-- 选项 1:jQuery 和 Bootstrap 集成包(集成了 Popper) -->
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>

    <!-- 选项 2:Popper 和 Bootstrap 的 JS 插件各自独立 -->
    <!--
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>
    -->
  </body>
</html>

首页优化不大,只是使用了Bootstrap框架
在这里插入图片描述

登录页面templates/login/login.html:

<!doctype html>
<html lang="zh-CN">
<head>
    <!-- 必须的 meta 标签 -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap 的 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"
          integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

    <title>用户登录</title>
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-sm"></div>
        <div class="col-sm">
            <h2 style="text-align: center">用户登录</h2>
            <div class="alert alert-warning" role="alert">
                <strong>登录失败!</strong>用户名或密码错误!
            </div>

            <form>
                <div class="form-group">
                    <label>用户名</label>
                    <input type="text" class="form-control">
                </div>
                <div class="form-group">
                    <label>Password</label>
                    <input type="password" class="form-control">
                    <small class="form-text text-muted">密码必须由数字和大小写字母组成.</small>
                </div>
                <a href="/register" class="text-success">
                    <ins>新用户注册</ins>
                </a>
                <button type="submit" class="btn btn-primary float-right">登录</button>
            </form>
        </div>
        <div class="col-sm"></div>
    </div>
</div>
<!-- JavaScript 文件是可选的。从以下两种建议中选择一个即可! -->

<!-- 选项 1:jQuery 和 Bootstrap 集成包(集成了 Popper) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
        crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct"
        crossorigin="anonymous"></script>

<!-- 选项 2:Popper 和 Bootstrap 的 JS 插件各自独立 -->
<!--
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>
-->
</body>
</html>

在这里插入图片描述

注册页面templates/login/register.html:

<!doctype html>
<html lang="zh-CN">
<head>
    <!-- 必须的 meta 标签 -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap 的 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"
          integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

    <title>用户注册</title>
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-sm"></div>
        <div class="col-sm">
            <h2 style="text-align: center">用户注册</h2>
            <form>
                <div class="form-group">
                    <label>用户名</label>
                    <input type="text" class="form-control">
                </div>
                <div class="form-group">
                    <label>电子邮箱</label>
                    <input type="email" class="form-control">
                </div>
                <div class="form-group">
                    <label>密码</label>
                    <input type="password" class="form-control">
                    <small class="form-text text-muted">密码必须由数字和大小写字母组成.</small>
                </div>
                <div class="form-group">
                    <label>确认密码</label>
                    <input type="password" class="form-control">
                    <small class="form-text text-muted">密码必须由数字和大小写字母组成.</small>
                </div>
                <a href="/login/" class="text-success">
                    <ins>用户登录</ins>
                </a>
                <button type="submit" class="btn btn-primary float-right">注册</button>
            </form>
        </div>
        <div class="col-sm"></div>
    </div>
</div>
<!-- JavaScript 文件是可选的。从以下两种建议中选择一个即可! -->

<!-- 选项 1:jQuery 和 Bootstrap 集成包(集成了 Popper) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
        crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct"
        crossorigin="anonymous"></script>

<!-- 选项 2:Popper 和 Bootstrap 的 JS 插件各自独立 -->
<!--
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>
-->
</body>
</html>

在这里插入图片描述

将代码变更保存至本地git仓库:

在这里插入图片描述

完善登录界面的视图函数

修改登录界面html代码:
template/login/login.html:
在这里插入图片描述
login/views.py文件:
在这里插入图片描述

测试:
输入正确用户名和密码能直接跳转到首页,
在这里插入图片描述
否则输入的信息有误,会提示错误信息

在这里插入图片描述

session会话和登出的视图函数

保存用户状态:
cookie,保存在客户端,会被伪造篡改
session是服务器端缓存,保存用户的登录信息

在loginRegister/settings.py文件中,能看到Django已经包含了session

在这里插入图片描述登录成功,则存储登录的用户信息到session中
login/views.py文件:
在这里插入图片描述在首页添加登出的超链接并测试

在下面的index.html页面用到了Bootstrap的导航条。
template/login/index.html:

<!doctype html>
<html lang="zh-CN">
<head>
    <!-- 必须的 meta 标签 -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap 的 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"
          integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

    <title>首页</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <a class="navbar-brand" href="#">主页</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
                <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">
                    Dropdown
                </a>
                <div class="dropdown-menu">
                    <a class="dropdown-item" href="#">Action</a>
                    <a class="dropdown-item" href="#">Another action</a>
                    <div class="dropdown-divider"></div>
                    <a class="dropdown-item" href="#">Something else here</a>
                </div>
            </li>
            <li class="nav-item">
                <a class="nav-link disabled">Disabled</a>
            </li>
        </ul>
        <form class="form-inline my-2 my-lg-0">
            <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form>
        <ul class="navbar-nav">
            <li class="nav-item">
                <a class="nav-link" href="/logout/">登出</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/index/">用户名:{{ request.session.username }}</a>
            </li>
        </ul>
    </div>
</nav>
<h1>你好,{{ request.session.username }}这是首页测试界面</h1>

<!-- JavaScript 文件是可选的。从以下两种建议中选择一个即可! -->
<!-- 选项 1:jQuery 和 Bootstrap 集成包(集成了 Popper) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
        crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct"
        crossorigin="anonymous"></script>
<!-- 选项 2:Popper 和 Bootstrap 的 JS 插件各自独立 -->
<!--
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>
-->
</body>
</html>

在这里插入图片描述

将当前代码推送至Gitee

将代码推送到本地git仓库

git add *
git commit -m "添加README.md和experments.txt文件"

推送到远程仓库
在这里插入图片描述

添加图片验证码

为了防止机器人频繁登录网站或者破坏分子恶意登录,很多用户登录和注册系统都提供了图片验证码的功能。

按照官方文档进行:https://django-simple-captcha.readthedocs.io/en/latest/usage.html
在Django中实现图片验证码可以使用现有的第三方库 django-simple-captcha
首先先安装库
在这里插入图片描述loginRegister/settings.py文件中添加captcha应用:

在这里插入图片描述子应用captcha已有迁移文件,直接应用至数据库
在这里插入图片描述添加路由配置

在这里插入图片描述
要继续往下做就先需要了解表单。
参考官方文档:https://docs.djangoproject.com/zh-hans/3.2/topics/forms/

在HTML中,表单是在 … 中的一些元素,它允许访客做一些类似输入文本、选择选项、操作对象或空间等动作,然后发送这些信息到服务端。
get和post:
get方法将提交的数据捆绑到一个字符串中,并用它来组成一个URL。适合提交不重要的信息。
提交一些重要的数据,比如密码,不适合使用get方法,否则密码会出现在url内,适合使用post方法提交,还有比如传文件、图片也需要使用post方法。

Django会处理涉及表单的三个不同部分:
准备并重组数据,以便下一步的渲染
为数据创建HTML 表单
接收并处理客户端提交的表单及数据

Django中的表单:
Django表单系统的核心组件是 Form 类。 Form 类描述一张表单并决定它如何工作及呈现。

在login子应用下创建新文件 forms.py 文件,编写Form类:
在这里插入图片描述

视图函数能将form对象传递给前端
先编写子应用login的视图函数 login/views.py

def login(request):
    if request.method=='POST': #请求方法为POST提交
        login_form=LoginForm(request.POST) #实例化表单对象
        if login_form.is_valid(): #验证表单数据的合法性
            username = login_form.cleaned_data.get('username')#获取表单填写数据,数据清洗
            password = login_form.cleaned_data.get('password')
            user=SiteUser.objects.filter(name=username,password=password).first()
            if user:
                request.session['is_login']=True
                request.session['user_id']=user.id
                request.session['username']=user.name
                return redirect('/index')
            else:
                message="用户名或者密码错误"
                #return render(request, 'login/login.html',{'message':message})
                return render(request, 'login/login.html',locals()) #locals()以字典方式返回所有的变量,e.g.{'message':XXX}
        else:
            message="填写的登录信息不合法"
            return render(request,'login/login.html',locals())
    #请求方法为GET方法
    login_form=LoginForm()
    return render(request, 'login/login.html',locals())

接着编写index.html 文件:

<!doctype html>
<html lang="zh-CN">
<head>
    <!-- 必须的 meta 标签 -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap 的 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"
          integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

    <title>用户登录</title>
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-sm"></div>
        <div class="col-sm">
            <h2 style="text-align: center">用户登录</h2>
            {% if login_form.captcha.errors %} #不同的错误提示不同的信息
            <div class="alert alert-warning" role="alert">
                <strong>登录失败!</strong>{{ login_form.captcha.errors }}
            </div>
            {% elif messages %}
            <div class="alert alert-warning" role="alert">
                <strong>登录失败!</strong>{{ message }}
            </div>
            {% endif %}
            <form action="/login/" method="post">
                {% csrf_token %}
                <div class="form-group">
                    <label>{{ login_form.username.label }}</label> 
                    <input type="text" class="form-control" name="username">
                </div>
                <div class="form-group">
                    <label>{{ login_form.password.label }}</label>
                    <input type="password" class="form-control" name="password">
                    <small class="form-text text-muted">密码必须由数字和大小写字母组成.</small>
                </div>
                <div class="form-group">  #添加验证码的表单
                    <label>{{ login_form.captcha.label }}</label>
                    {{ login_form.captcha }} 
                </div>
                <a href="/register" class="text-success">
                    <ins>新用户注册</ins>
                </a>
                <button type="submit" class="btn btn-primary float-right">登录</button>
            </form>
        </div>
        <div class="col-sm"></div>
    </div>
</div>
<!-- JavaScript 文件是可选的。从以下两种建议中选择一个即可! -->

<!-- 选项 1:jQuery 和 Bootstrap 集成包(集成了 Popper) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
        crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct"
        crossorigin="anonymous"></script>

<!-- 选项 2:Popper 和 Bootstrap 的 JS 插件各自独立 -->
<!--
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>
-->
</body>
</html>

浏览器页面测试:
在这里插入图片描述

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

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

相关文章

AHB协议(1/2)

AHB协议&#xff08;1/2&#xff09; 以下内容为AMBA5 AHB Protocol Specification协议内容 Charpter 1 Introduction 1.1 关于AHB协议 AMBA AHB是一个支持高性能设计的总线接口。他在组件间&#xff0c;如主端&#xff08;Master&#xff09;&#xff0c;互联结构&#xf…

云原生之使用Docker部署Dailynotes个人笔记管理工具

云原生之使用Docker部署Dailynotes个人笔记管理工具一、Dailynotes介绍二、检查本地docker环境1.检查docker版本2.检查docker状态三、下载Dailynotes镜像四、创建Dailynotes容器1.创建数据目录2.创建Dailynotes容器3.查看Dailynotes容器状态五、访问Dailynotes1.进入Dailynotes…

uniCloud云开发----5、uni-id-pages的使用

uni-id-pages的使用前言1、下载uni-id-pages插件2、查看登录页面3、配置项云端配置config.json前言 在开发过程中&#xff0c;会发现微信小程序的登录方式不断地更新和变化&#xff0c;这样导致我们在开发过程中非常的困难&#xff0c;uni-id-pages直接集成的页面和数据库来实…

67、【链表】leetcode——242. 有效的字母异位词(C++版本)

题目描述 原题链接&#xff1a;242. 有效的字母异位词 一、ASCII码作为Key 因s和t都为小写字母&#xff0c;因此可将s和t中字母用ASCII码数字表示&#xff0c;减去a&#xff0c;映射到0-25当中&#xff0c;作为Hash表映射结构。 首先&#xff0c;查看s和t的长度是否相同&…

09线性相关、基、维数

线性相关、基、维数 知识概要 ​ 从线性相关或线性无关的特征入手,介绍空间的的几个重要概念:基、维数 线性无关与线性相关 (1)背景知识: 谈论的概念都是基于向量组的,而不是基于矩阵。线 性无关,线性相关是向量组内的关系,基也是一个向量组,不要与矩阵概念混淆。 首先…

华为云工程师HCIA——服务器技术基础

服务器的定义 服务器是计算机的一种。他比普通计算机运行熟读更快、负载更高而且价格更高。 服务器是为用户提供服务的计算机&#xff0c;通常分为文件服务器、数据库服务器和应用程序服务器。 服务器特点 可用性可扩展性可管理性易用性可靠性 服务器硬件结构 Huawei2280…

01 大数据概述

01 大数据概述1、大数据&#xff1a; 主要用来解决海量数据的存储和海量数据的分析计算问题。 2、大数据的特点&#xff1a; 大量&#xff08;Volume&#xff09;&#xff1a;一些大企业的数据量已经接近EB量级。高速&#xff08;Velocity&#xff09;: 随着数据量的增大&…

B树的原理及代码实现、B+树和B*树介绍及应用

目录 一.B树介绍 &#xff08;一&#xff09;.B树存在意义 &#xff08;二&#xff09;.B树的规则 二.B树实现原理及代码 &#xff08;一&#xff09;.实现原理 &#xff08;二&#xff09;.代码 三.B树 &#xff08;一&#xff09;.概念 &#xff08;二&#xff09;.应…

Python批量采集某网站高清壁纸,这下不用担心没壁纸换了

前言 咳咳&#xff0c;担心壁纸不够用&#xff1f;想要一天换一张&#xff1f;ok &#xff0c;今天就来搞搞壁纸网站 之前老有很多高质量的网站都不见了&#xff0c;趁着这个还在&#xff0c;赶紧多保存点 话不多说 马上开始 我的表演 代码 导入模块 所有 源码 点击 此处 领…

矩阵快速幂(新手做法)

1.通过一个代码来了解矩阵乘法2.基本快速幂3.那么最后就是矩阵快速幂了4.练习模板&#xff1a;5.进阶运用&#xff0c;蓝桥杯15届省赛c语言组第9题矩阵快速幂的学习流程&#xff1a; 矩阵乘法运算规则&#xff08;线性代数基础&#xff09;快速幂的模板 1.通过一个代码来了解矩…

S32K144—什么是SBC系统基础芯片?

SBC&#xff08;System Basis Chip&#xff09;芯片在汽车电子领域可谓占一席之地了。那么什么是SBC&#xff1f;怎么用&#xff1f;用在哪里&#xff1f;主要特性&#xff1f; 可以简单理解成&#xff1a;SBC是一类拥有特出功能&#xff08;电源、通信、监控诊断、安全&#…

【附源码】基于fpga的自动售货机(使用三段式状态机实现)

目录 1、VL38 自动贩售机1 题目介绍 思路分析 代码实现 仿真文件 2、VL39 自动贩售机2 题目介绍&#xff1a; 题目分析 代码实现 仿真文件 3、状态机基本知识 1、VL38 自动贩售机1 题目介绍 设计一个自动贩售机&#xff0c;输入货币有三种&#xff0c;为0.5/1/2元&…

嵌入式Linux驱动开发笔记(八)

嵌入式Linux驱动开发笔记&#xff08;八&#xff09; 交叉编译工具说明&#xff1a; 正点原子提供两种交叉编译工具链。这两种交叉编译工具链解释如下图。 我们只需要知道上面的第二种通用的交叉编译器去学习【正点原子】 I.MX6U 嵌入式 Linux 驱动开发指南这本教程。第一种…

lscpu查看cpu信息

$ lscpu Architecture: x86_64 # 架构CPU op-mode(s): 32-bit, 64-bitAddress sizes: 45 bits physical, 48 bits virtualByte Order: Little Endian # 字节序 CPU(s): 2 # 逻辑cpu数On-line CPU(s) list: 0,1 Vendo…

GitHub上 7 个Spring Boot 优质开源项目

前后端分离已经在慢慢走进各公司的技术栈&#xff0c;不少公司都已经切换到这个技术栈上面了。即使贵司目前没有切换到这个技术栈上面&#xff0c;松哥也非常建议大家学习一下前后端分离开发&#xff0c;以免在公司干了两三年&#xff0c;SSH 框架用的滚瓜烂熟&#xff0c;出来…

hcip第四天实验

实验步骤 配置ip 所有设备可以与公网可以通信&#xff0c;在边界路由器上配置缺省指向ISP 配置普通GRE 启OSPF&#xff0c;对于不规则区域使用重发布 优化LSA更新量 R5&#xff1a; [r5]acl 2000 [r5-acl-basic-2000]rule permit source any [r5]int GigabitEthernet…

数据库知识

关系数据库标准语言SQL 写在开头这一章应该把更多的功夫放在实践上面&#xff0c;书中的语句繁杂多样&#xff0c;不亲自写一写是不容易学会的。其次&#xff0c;理论学了那么多&#xff0c;不会有人不想实践敲一下吧[doge]&#xff1f;建议先搞数据更新中的插入数据后再看查询…

【回答问题】ChatGPT上线了!写出coco数据集的图像分类训练和预测函数代码?

写出coco数据集的图像分类训练代码 好的&#xff0c;我会尽力写出图像分类训练代码。首先&#xff0c;你需要准备好 COCO 数据集的图像和标签&#xff0c;并将其转换成适合你模型使用的格式。其次&#xff0c;你需要选择一个图像分类模型&#xff0c;并定义好模型的结构。接下…

【课程太贵,学习无门,让你们了解CSS3入门知识】

文章目录‍❤️‍&#x1f525;CSS简介‍‍‍‍❤️‍&#x1f525;CSS选择器❣️选择器一❣️选择器二❣️关系选择器‍❤️‍&#x1f525;CSS属性❣️字体属性❣️背景属性❣️文本属性❣️表格属性‍❤️‍&#x1f525;CSS文档流‍❤️‍&#x1f525;CSS浮动‍❤️‍&…

【编程导航】设计模式学习笔记

设计模式日常学习(一)设计模式 软件设计模式的概念 软件设计模式&#xff08;Software Design Pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的…