Django-基础篇

news2024/10/7 9:22:13

Django是一个开放源代码的Web应用框架,由Python语言编写。它遵循MVC(Model-View-Controller)的软件设计模式,使开发者能够以高效、可扩展和安全的方式构建Web应用程序。

Django具有以下特点和优势:

  1. 强大的功能:Django提供了许多内置的功能和工具,包括数据库访问、表单处理、用户认证、URL路由等。这些功能使开发者能够快速构建功能完善的Web应用程序。

  2. 高效的开发:Django使用Python语言编写,具有简洁优雅的语法和丰富的库。它提供了许多开发工具和自动化功能,使开发者能够以高效的方式快速开发和测试Web应用程序。

  3. 可扩展性:Django采用模块化的设计,可以方便地扩展和定制。开发者可以通过添加自定义插件、使用第三方库等方式来增强Django的功能。

  4. 安全性:Django内置了许多安全功能,如跨站点请求伪造(CSRF)防护、XSS(跨站点脚本)防护、点击劫持防护等。这些功能可以帮助开发者构建安全可靠的Web应用程序。

  5. 社区支持:Django拥有庞大的开发者社区,提供了大量的教程、文档、示例代码和问答平台。开发者可以从社区中获取支持和贡献自己的代码。

总的来说,Django是一个功能强大、灵活可扩展且安全可靠的Web应用框架,适用于构建各种规模的Web应用程序。它的简单和高效开发方式使得开发者能够专注于业务逻辑的实现,而不必过多关注底层技术细节。

1. 安装

pip install django

2. 创建django项目

安装好django后,django会提供一个创建项目的脚手架工具:django-admin.exe

使用django-admin.exe 创建的项目会默认创建, 项目文件夹以及一些初始化文件

创建项目:

方式一

  • 使用专业版pycharm创建django项目 (不常用,因为大部分入门学习python时使用的都是社区版的pycharm),所以这里不做操作的演示
  • 使用pycharm创建的django项目:
    • 会默认自带一个templates文件夹,可以删除不影响
    • 会在settings.py中的模板文件配置项添加 templates文件夹的匹配路径

方式二常用的创建django项目的方式

  • 终端:django-admin startproject 项目名称
    • 例如:django-admin startproject baseCode1
      • baseCode1        
        • baseCode1
          • __init__.py
          • asgi.py
          • settings.py
          • urls.py
          • wsgi.py
        • manage.py

推荐:方式二

3. 项目目录介绍

以下是使用命令行创建的django项目:django-admin startproject baseCode1

  • baseCode1        
    • baseCode1
      • __init__.py
      • asgi.py
      • settings.py
      • urls.py
      • wsgi.py
    • manage.py 

  • manage.py:一般不会去修改或添加代码到manage.py文件中
    • 作用:[项目的管理,项目的启动,创建app,数据管理]
    • 常用命令
      • manage.py runserver: 启动开发服务器,用于在本地运行开发环境中的Django项目
      • manage.py makemigrations:根据模型的变化创建迁移文件,用于数据库的更新
      • manage.py migrate:将数据库的迁移文件应用到数据库中,执行数据库的更新操作
      • createsuperuser:创建超级用户,用于管理Django项目的后台管理系统
      • collectstatic:将静态文件(如 CSS、JavaScript、图片等)收集到指定的静态文件夹中,便于部署
      • python manage.py --help  查看所有可用的命令和选项
  • asgi.py:一般不会去修改或添加代码到asgi.py文件中
    • 了解
      • asgi.py 是一个ASGI应用程序的入口点
        • ASGI是一种异步的Python Web服务器接口规范,它允许通过异步方式处理HTTP请求和响应。
        • 相比于传统的WSGI(Web Server Gateway Interface),ASGI提供了处理实时Web应用程序和长轮询请求的能力,以及与异步后端通信的能力
    • 作用:asgi.py文件用于配置ASGI服务器来运行Django应用程序
      • asgi.py中定义了一个 application 的变量,它是django应用程序的入口点
      • ASGI服务器将使用这个变量来启动和运行Django应用程序
      • 在asgi.py 文件中,可以配置ASGI服务器,定义中间件,设置静态文件路径等
    • 总结:
      • asgi.py文件的作用是配置ASGI服务器来运行Django应用程序,提供异步处理请求和响应的能力
  • wsgi.py 一般不会去修改或添加代码到wsgi.py文件中
    • 了解
      • wsgi.py文件是Django项目中的Web服务器网关接口(Web Server Gateway Interface)文件。
      • 它的作用是定义了一个WSGI应用程序对象,用于处理HTTP请求并将其发送到Django应用程序
    • 作用:
      • 用于Web服务器与Web应用程序之间的通信
      • wsgi.py文件负责加载Django项目的设置,并创建一个WSGI应用程序对象,该对象负责将接收到的HTTP请求传递给Django框架进行处理
      • 在部署Django应用程序时,通常会使用Web服务器(如Apache或Nginx)来处理HTTP请求,然后将请求传递给wsgi.py文件。wsgi.py文件将根据配置的路由规则将请求传递给相应的Django视图函数进行处理,并将处理结果返回给Web服务器,最终返回给客户端
    • 总结:
      • wsgi.py文件是Django应用程序与Web服务器之间的桥梁,负责将HTTP请求传递给Django应用程序进行处理
  • urls.py 
    • 作用:
      • 定义项目的URL路由
      • 用于指定那个视图函数应该被调用来响应特定的URL请求
    • 具体:
      • urls.py文件包含了一个URL模式列表,每个模式都定义了一个URL模式和一个对应的视图函数,当用户访问某个URL时,Django会根据`urls.py`中的定义来确定应该调用哪个视图函数来处理该请求
  • settings.py 文件是Django项目的配置文件,用于存储项目的所有配置信息。
    • - DATABASES:配置数据库连接信息。
    • - DEBUG:设置调试模式,用于开发阶段调试。
    • - ALLOWED_HOSTS:允许访问的主机列表,用于安全限制。
    • - INSTALLED_APPS:安装的Django应用程序列表。
    • - MIDDLEWARE:中间件的配置,用于在请求和响应处理之间进行处理。
    • - TEMPLATES:模板的设置,包括模板引擎、模板路径等。
    • - STATIC_URL和STATIC_ROOT:配置静态文件的URL和存储路径。
    • - MEDIA_URL和MEDIA_ROOT:配置媒体文件的URL和存储路径。
    • - LANGUAGE_CODE和TIME_ZONE:配置语言和时区
    • 通过编辑settings.py文件,可以根据项目的需求进行各种配置,例如设置数据库连接信息、调试模式、静态文件和媒体文件的处理方式等。这些配置信息将影响整个Django项目的运行行为和功能

关于项目目录介绍的简化总结:

  • baseCode1        项目的根目录,包含了Django项目的配置和其他相关文件
    • baseCode1        项目的Python包,包含了项目的配置,URL映射等信息
      • __init__.py  标识该目录为python包
      • settings.py  Django项目的配置文件,包括数据库连接,静态文件配置,应用程序配置等
      • urls.py URL映射配置文件,指定了URL与视图函数的对应关系
      • wsgi.py  用于部署项目到WSGI服务器,(例如:Apacha,Nginx)的入口文件
      • asgi.py  不常用

4. 创建应用程序

  1. 在Django中,startapp 命令用于创建一个新的应用程序
  2. 每个Django项目可以包含多个应用程序
  3. startapp 命令会自动生成一个包含必要文件和目录结构的新应用程序
  4. startapp 创建的应用会包含,模型,试图,模板,静态文件等。
  5. 通过创建应用程序,可以将不同的功能和模块分开管理,使得项目结构更加清晰和可维护

创建应用命令:

  • 命令:python manage.py startapp 应用程序名称
  • 例如:python manage.py startapp app

应用程序项目目录介绍:

  • app  Django应用程序的目录,包含了应用程序的模型、视图、URL映射等组件   
    • migrations
      • __init__.py  标识该目录为Python包
    • __init__.py  标识该目录为Python包
    • admin.py  管理后台配置文件,用于定义模型在管理后台中的显示和操作
    • apps.py  应用程序配置文件,用于配置应用程序的名称和其他信息
    • models.py  数据库模型定义文件,用于定义应用程序的数据模型
    • tests.py  测试文件,用于编写应用程序的测试用例
    • views.py  视图函数文件,用于处理URL请求,返回响应数据

5. Django初体验

本章目标:快速体验Django

经过以上文章一步步创建出来的当前项目目录结构:

  • baseCode1    项目的根目录,包含了Django项目的配置和其他相关文件
    • app  Django应用程序的目录,包含了应用程序的模型、视图、URL映射等组件   
      • migrations
        • __init__.py  标识该目录为Python包
      • __init__.py  标识该目录为Python包
      • admin.py  管理后台配置文件,用于定义模型在管理后台中的显示和操作
      • apps.py  应用程序配置文件,用于配置应用程序的名称和其他信息
      • models.py  数据库模型定义文件,用于定义应用程序的数据模型
      • tests.py  测试文件,用于编写应用程序的测试用例
      • views.py  视图函数文件,用于处理URL请求,返回响应数据
    • baseCode1        项目的Python包,包含了项目的配置,URL映射等信息
      • __init__.py  标识该目录为python包
      • settings.py  Django项目的配置文件,包括数据库连接,静态文件配置,应用程序配置等
      • urls.py URL映射配置文件,指定了URL与视图函数的对应关系
      • wsgi.py  用于部署项目到WSGI服务器,(例如:Apacha,Nginx)的入口文件
      • asgi.py  不常用

  1. 注册应用程序
    1. 在settings.py中注册app应用程序
    2. 找到 settings.py中的常量 INSTALLED_APPS
      INSTALLED_APPS = [
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
        
      ]
    3. 在 INSTALLED_APPS 尾部添加注册app应用程序
      INSTALLED_APPS = [
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
          # 注册app应用
          'app.apps.AppConfig'
      ]
  2. 编写URL和视图函数对应关系

    1. 在urls.py中编写url和绑定视图函数

      from django.contrib import admin
      from django.urls import path
      from app.views import index
      
      urlpatterns = [
          # 访问 http://127.0.0.1:8000/index 时 index
          path('index/', index),
      ]
      
    2. 在app应用程序中的views.py中编写视图函数

      from django.shortcuts import render, HttpResponse
      
      
      # Create your views here.
      
      
      def index(request):
          return HttpResponse("欢迎使用")
      
  3. 运行django项目:python manage.py runserver

访问:http://127.0.0.1:8000/index/

6. 模板和静态文件

6.1 render 函数

关于rendere详细语法:render(request, template_name, context=None, content_type=None, status=None, using=None)

  • 参数解释
    • request:包含当前请求的HttpRequest对象
    • template_name:模板的路径或名称
    • context:一个包含模板变量的字典,返回的字典数据在html中使用模板语法接收,默认为None
    • content_type:响应的内容类型,默认为None
    • status:响应的HTTP状态码,默认为None
    • using:使用的模板引擎名称,默认为None
  • 使用示例:
    from django.shortcuts import render
    
    def my_view(request):
        context = {'foo': 'bar'}
        return render(request, 'my_app/my_template.html', context=context)
    在上面的例子中,`render`函数接收一个名为`request`的HttpRequest对象,一个模板名为`my_app/my_template.html`的模板,并传递一个包含一个键值对`{'foo': 'bar'}`的上下文字典。最后,`render`函数将渲染得到的HTML作为响应返回给客户端。

6.2 templates模板

当用户访问 http://127.0.0.1:8000/hello 时,想返回的是一个html,那么需要怎么使用和配置呢?


方式一:

  1. 在根目录下创建 templates 目录
  2. 在settings.py中找到常量  TEMPLATES
  3. 在TEMPLATES中将 DIRS的值修改为:[os.path.join(BASE_DIR,"templates")]  当经过以上配置之后,默认会先在根目录中寻找templates,如果寻找不到才去 app应用程序中查找templates
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            # 匹配templates目录
            'DIRS': [os.path.join(BASE_DIR,"templates")],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
  4. 编写代码,当访问 /hello 时返回一个html模板

    1. 在urls.py中编写url和绑定视图函数

      from django.contrib import admin
      from django.urls import path
      from app.views import hello
      
      urlpatterns = [
          path('hello/', hello),
      ]
      
    2. 在app应用程序中找到views.py在里面编写一个 hello 视图函数

      from django.shortcuts import render
      
      
      def hello(request):
          # 在templates中寻找hello.html
          return render(request, "./hello.html")
      

方式二:

直接在app应用程序中创建templates,将html模板放到templates,但是前提是settings.py中的TEMPLATES的DIRS必须为[ ],不然匹配模板的时候会优先去匹配根路径的templates

建议:

  • 如果你的项目中,使用到的模板比较少,或app应用程序不使用到模板的话,建议使用方式一
  • 如果你的项目中,存在多个app应用,并且都每个app都有对应的独立的模板,建议使用方式二

6.3 静态文件

在app 应用程序目录下 创建static目录,用于存放静态文件

Django中html引入静态文件的语法

{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello world</title>
    <link rel="stylesheet" href="{% static 'plugins/bootstrap.min.css' %}">
</head>
<body>
<img src="{% static "img/1.png" %}" alt="">

<script src="{% static "js/jquery.js" %}"></script>
<script src="{% static "plugins/bootstrap.min.js" %}"></script>
</body>
</html>

6.3 模板语法

经过以上对templates的配置以及简单的使用,知道了怎么返回一个html,那么html中怎么接收到对应的数据内容呢?


app/views.py  视图函数

def test(request):
    # 在templates中寻找hello.html
    data = {
        "name": "小红",
        "age": 10
    }
    return render(request, "test.html", context=data)

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>name: {{ name }}</div>
<div>age: {{ age }}</div>
</body>
</html>

关于Django模板语法的更多使用,请百度

7. 请求与响应

在Django中,请求和响应是Web应用程序与用户之间进行通信的基本元素。请求(request)是由用户发送给应用程序的,在请求中包含了用户的需求和相关数据。而响应(response)是应用程序对用户请求的处理结果,它包含了要返回给用户的数据和其他相关信息。

  • 请求(Request):
    • Django中的请求对象(request)封装了用户发送的HTTP请求的各种信息。它包含了请求的方法(GET、POST等)、请求的URL、请求头部信息、请求的参数等。请求对象还提供了一些方法来获取请求中的数据,例如GET方法获取GET请求参数,POST方法获取POST请求参数等。请求对象还可以包含用户的会话信息、用户认证信息等。
  • 响应(Response):
    • Django中的响应对象(response)封装了应用程序对请求的处理结果。可以通过响应对象来设置返回给用户的数据和其他相关信息。响应对象通常包含一个HTTP状态码,用来表示请求的处理结果,例如200表示成功,404表示未找到等。响应对象还可以设置响应头部信息,例如Content-Type、Cache-Control等。另外,响应对象还可以设置返回给用户的数据,可以是HTML页面、JSON数据、文件等。

在Django中,请求和响应的处理流程如下:
1. 用户发送HTTP请求到应用程序。
2. Django解析请求,生成请求对象,并将请求对象传递给相应的视图函数。
3. 视图函数对请求进行处理,并生成响应对象。
4. Django将响应对象发送回用户,完成请求-响应的过程。

总之,请求和响应是Django中实现用户与应用程序通信的基本机制,通过请求对象和响应对象,可以方便地处理用户的请求和返回相应的结果。

详细api请看:请求和响应对象 | Django 文档 | Django

8. Orm

  • 依赖安装:pip install mysqlclient
  • Django中内置提供了Orm框架
    • 功能:
      • 创建,修改,删除数据库中的表
      • 操作表中的数据
    • 注:不能创建数据库

8.1 手动创建数据

手动创建数据库:create database testdata

8.2 连接数据

在settings.py中修改配置,找到常量:DATABASE

默认是连接sqllite数据库的

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

修改为连接mysql数据库

DATABASES = {
    'default': {
        # 默认是sqlite3数据库
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': BASE_DIR / 'db.sqlite3',

        # 修改为mysql数据库连接
        'ENGINE': "django.db.backends.mysql",
        # 数据库名称(已创建的数据库名称)
        'NAME': 'testdata',
        # 数据库用户名
        'USER': 'root',
        # 数据库密码
        'PASSWORD': 'root',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

8.3 创建数据

上面说到了Django中内置了Orm,但是数据库需要自己手动创建,剩下的表操作就需要在models.py中编写数据模型,然后自动生成表结构

在应用程序的models.py中编写数据模型,生成表结构:

  1. models.py 创建表模型
    from django.db import models
    
    
    class BaseTest(models.Model):
        name = models.CharField(max_length=32)
        password = models.CharField(max_length=64)
        age = models.IntegerField()
    
  2. 执行命令,生成表结构:

    1. python manage.py makemigrations 数据库迁移文件的命令

    2. python manage.py migrate 迁移到数据库中的命令

  3. 其他的数据表是默认的,可以无视。

Orm的所有操作都是在app应用程序下的models.py中,所以需要先将app应用程序注册到settings.py文件中,执行命令才能对生效为对应的数据表

如果你遇到了以下的错误:

  • django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26)
    • 解决方案:Django提示mysql版本过低:django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26)._django.db.utils.notsupportederror: mysql 8.0.11 or-CSDN博客

8.4 增删改查

models.py

from django.db import models


class BaseTest(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()

增删改查操作,views.py 

from django.http import HttpResponse
from .models import BaseTest


def orm_curd(request):
    # 插入数据
    # BaseTest.objects.create(name="小红", password="12332123", age=10)
    # BaseTest.objects.create(name="小明", password="dwadaw", age=10)
    # BaseTest.objects.create(name="小方", password="12332dawd123", age=10)

    # 删除数据
    # 删除 id为3的数据
    # BaseTest.objects.filter(id=3).delete()
    # 删除表中所有数据
    # BaseTest.objects.all().delete()

    # 获取所有数据
    # querySetList = BaseTest.objects.all()
    # for obj in querySetList:
    #     print(obj.id, obj.name, obj.password)

    # 获取 id=1 的数据
    # 如果取单条数据就使用first()直接获取,不需要遍历
    # row_obj = BaseTest.objects.filter(id=1).first()
    # print(row_obj.id, row_obj.name, row_obj.password)

    # 更新数据
    # 将password字段值都更新为 6666
    # BaseTest.objects.all().update(password='6666')
    # 查询id为1的数据更新字段password为12321312
    BaseTest.objects.filter(id=1).update(password='12321312')
    return HttpResponse("成功")

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

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

相关文章

CSS + HTML

目录 一.CSS&#xff08;层叠样式表&#xff09; 二. CSS 引入方式 三.选择器 3.1 标签选择器 3.2 类选择器 3.3 id选择器 3.4 通配符选择器 3.5 画盒子 四.文字控制属性 4.1字体大小 4.2字体粗细 4.3 字体倾斜 4.4行高 4.5行高--垂直居中 4.6 字体族 4.7 字体复…

TikTok一键采集发布视频的工具制作!

随着社交媒体的兴起&#xff0c;短视频平台如TikTok已经成为全球亿万用户分享生活、娱乐和学习的重要舞台&#xff0c;然而&#xff0c;对于内容创作者和商家来说&#xff0c;手动上传和管理视频内容既耗时又耗力。 因此&#xff0c;开发一款能够一键采集、编辑并发布视频的Ti…

在Ubuntu linux操作系统上操作MySQL数据库常用的命令

检查是否安装了MySQL&#xff0c;或检查MySQL的状态&#xff1a; sudo systemctl status mysql或 sudo systemctl status mysql.service如果mysql有安装&#xff0c;上面这条命令会返回mysql的状态active或inactive。 卸载mysql数据库 第一步是停了数据库&#xff1a; sud…

帕累托森林李朝政博士受聘「天工开物开源基金会」专家顾问

导语&#xff1a; 开源铸造了当前最前沿的科技引擎。开源驱动了软件生态&#xff0c;也以指数级速度驱动硬件生态。 3月中旬&#xff0c;天工开物开源基金会授予李朝政博士专家顾问&#xff0c;表彰他积极推动参与中国智能软件生态的建设&#xff0c;期待一起共筑未来新生态。…

软件设计师-重点的行为型设计模式

一、命令模式&#xff08;Command&#xff09;&#xff1a; 意图&#xff1a;&#xff08;上午题&#xff09; 将一个请求封装为一个对象&#xff0c;从而使得可以用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 结构…

前端实现导入Excel进行数据展示、导出

需求 一个 excel 文档 需要对文档里面的数据进行筛选拆分重组 由于数据量巨大 后端又抽不出来手 于是使用纯前端解决方案 解决思路 前端导入excel 把 excel 的数据解析为 json 格式 对数据进行相应操作后 重新导出为新 excel 虽笨但有效 第一步 导入excel 该方案需引…

HDFS架构

HDFS 是一个主从 Master/Slave 架构一个 HDFS 集群包含一个 NameNode,这是一个 Master Server,用来管理文件系统的命名空间,以及协调客户端对文件的访问一个 HDFS 集群包含多个 DataNode,用来存储数据HDFS 会对外暴露一个文件系统命名空间,并允许用户数据以文件的形式进行存储在…

Ubuntu服务器创建新用户及解决新用户登录Access denied问题

目录 Ubuntu服务器创建新用户及解决新用户登录Access denied问题创建账号步骤创建用户只创建用户添加用户到sudo组 允许账号远程连接重启ssh服务 删除账号要删除用户而不删除用户文件如果要删除并且删除用户的家目录和邮件 查询指令查看所有用户查询特定用户账户信息查看用户组…

如何下载钉钉群直播回放:完整步骤解析

在当今快节奏的商业和教育环境中&#xff0c;钉钉群直播已经成为了沟通和学习的重要工具。直播结束后&#xff0c;很多观众都希望回顾内容&#xff0c;但却不知如何开始。如果你错过了实时直播&#xff0c;或者只是想再次观看精彩的演讲和讨论&#xff0c;那么下载钉钉群直播回…

商超物联网方案-人员和资产管理配置指南~配置人员和资产管理示例

配置人员和资产管理示例 组网图形 图1 配置人员和资产管理示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 某商场经常发现资产遗失或寻找不到。为降低财产损失&#xff0c;商场希望能统一监控资产所在位置和移动路径&#xff0c;以便掌握…

2024年Q1季度白酒行业数据分析:消费升级下,白酒均价上涨

前段时间&#xff0c;飞天茅台被曝批发参考价再次下探。而从线上市场的整体情况来看&#xff0c;白酒行业均价同比去年却有所上涨。鲸参谋数据显示&#xff0c;白酒均价在750元左右&#xff0c;同比去年上涨了14%。 尽管白酒行业均价有所上涨&#xff0c;但今年第一季度表现不…

java设计模式 -- 工厂模式

1、基本概念 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂…

Spark-机器学习(8)分类学习之随机森林

在之前的文章中&#xff0c;我们学习了分类学习之支持向量机决策树支持向量机&#xff0c;并带来简单案例&#xff0c;学习用法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&a…

工业交换机的封装与防尘防水设计

随着工业自动化程度的不断提升&#xff0c;工业交换机作为工业网络的核心设备之一&#xff0c;其稳定可靠的通信性能对于生产环境至关重要。而在恶劣的工业环境中&#xff0c;尘土、湿气等因素常常会对设备的稳定性和持久性造成挑战。因此&#xff0c;工业交换机的封装设计和防…

21 JavaScript 学习:一些误区和易错点

赋值运算符应用错误 在 JavaScript 中&#xff0c;赋值运算符&#xff08;Assignment Operators&#xff09;用于给变量赋值。常见的赋值运算符包括 、、-、*、/ 等。如果赋值运算符的应用不正确&#xff0c;可能会导致程序出现错误或产生意外的结果。 以下是一些常见的赋值运…

有趣的 CSS 图标整合技术!sprites精灵图,css贴图定位

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合…

ubuntu20.04安装RabbitMQ 3.11.19+Erlang 25.3.1

1、检查RabbitMQ、Erlang版本 Erlang Version Requirements | RabbitMQ 2、ubuntu20.04对应的是 focal 3、下载安装Erlang 下载地址&#xff1a;http://packages.erlang-solutions.com/erlang/debian/pool/ sudo dpkg -i esl-erlang_25.3-1~ubuntu~focal_amd64.deb sudo apt…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(二)

大家好&#xff0c;我是程序员大猩猩。 上次我们实践了&#xff0c;Java后端如何完成SockJSStomp的配置实现。 微服务使用SockJsStomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑&#xff08;一&#xff09; 那么今天我们做一下web vue端的是如何来实现…

Docker 中安装单体架构 MySQL 的 Shell 脚本

该脚本用于实现 root 用户在 Linux 操作系统下的 Docker 中安装单体架构 MySQL Shell 脚本 Git 仓库地址 Gitee&#xff1a;https://gitee.com/tongchaowei/common-shell/tree/main/root 执行脚本 bash ./docker-mysql-install-single.sh需要注意的 该脚本会先检查是否安…

华为配置mDNS网关示例(AP与AC间二层转发)

华为配置mDNS网关示例&#xff08;AP与AC间二层转发&#xff09; 组网图形 图1 配置mDNS网关组网图 组网需求配置思路操作步骤配置文件 组网需求 如图1所示&#xff0c;某企业的移动终端通过WLAN连接网络&#xff0c;AP_1和AP_2分别与AC之间采用二层转发。部门1和部门2分别属…