Django 入门实战:从环境搭建到构建你的第一个 Web 应用

news2025/4/25 11:54:01

Django 入门实战:从环境搭建到构建你的第一个 Web 应用

恭喜你选择 Django 作为你学习 Python Web 开发的起点!Django 是一个强大、成熟且功能齐全的框架,非常适合构建中大型的 Web 应用程序。本篇将通过一个简单的例子,带你走完 Django 开发的核心流程。

我们将构建一个非常简单的应用:一个显示项目列表的页面,这些项目数据存储在数据库中,并且可以通过 Django 自带的管理后台进行管理。

我们将要完成的步骤:

  1. 搭建开发环境 (Python, pip, 虚拟环境, Django)。
  2. 创建一个 Django 项目。
  3. 创建一个 Django 应用。
  4. 定义一个简单的视图 (View)。
  5. 配置 URL 路由 (URL Dispatcher)。
  6. 使用模板 (Template) 渲染 HTML。
  7. 定义模型 (Model),与数据库交互。
  8. 使用 Django 自带的管理后台管理数据。
  9. 在页面上显示数据库中的数据。

开始吧!

Part 1: 环境搭建

首先,确保你的电脑已经安装了 Python 和 pip。建议使用 Python 3.7 或更高版本。

  1. 创建和激活虚拟环境:

    使用虚拟环境是 Python 开发的最佳实践,它可以隔离不同项目之间的依赖,避免冲突。

    打开命令提示符 (Command Prompt) 或 PowerShell。

    • 创建一个新的虚拟环境(例如命名为 myproject_venv):

      Bash

      python -m venv myproject_venv
      

      这会在当前目录下创建一个名为 myproject_venv 的文件夹。

    • 激活虚拟环境:

      • Windows 命令提示符 (Command Prompt): Bash

        myproject_venv\Scripts\activate.bat
        
      • Windows PowerShell: PowerShell

        myproject_venv\Scripts\Activate.ps1
        
        如果遇到执行策略问题,可以尝试运行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 并同意。

      激活成功后,你的命令行提示符前面会显示虚拟环境的名称,例如 (myproject_venv) C:\YourProject>

  2. 在虚拟环境中安装 Django:

    确保虚拟环境已激活,然后使用 pip 安装 Django。

    Bash

    pip install django
    

    等待安装完成。

  3. 验证 Django 安装:

    可以运行以下命令检查 Django 是否成功安装以及版本号。

    Bash

    django-admin --version
    

    如果显示版本号,说明安装成功。

Part 2: 创建一个 Django 项目

Django 项目是整个 Web 应用的容器,包含配置和设置。

  1. 在项目目录下创建 Django 项目:

    在你的项目目录(例如,你刚刚创建虚拟环境的那个目录)下,运行以下命令:

    Bash

    django-admin startproject myproject .
    
    • django-admin 是 Django 的命令行工具。
    • startproject 是一个命令,用于创建一个新项目。
    • myproject 是你给项目取的名称。
    • 后面的 . 表示在当前目录创建项目文件和目录,而不是在当前目录下再创建一个 myproject 子目录。

    成功运行后,你的项目目录下会生成以下文件和目录结构:

    .
    ├── manage.py
    └── myproject
        ├── __init__.py
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py
    
    • manage.py: 一个命令行工具,用于与项目进行各种交互,如运行服务器、执行数据库迁移等。
    • myproject/: 项目的配置目录。
      • settings.py: 项目的主要配置文件。
      • urls.py: 项目的 URL 路由配置文件。
      • wsgi.py, asgi.py: 用于部署的服务器入口文件。
  2. 运行开发服务器:

    进入包含 manage.py 文件的项目根目录,运行以下命令:

    Bash

    python manage.py runserver
    

    服务器会启动,默认运行在 http://127.0.0.1:8000/

    打开你的浏览器,访问 http://127.0.0.1:8000/。如果看到一个带有火箭图标的“The install worked successfully! Congratulations!”页面,说明你的 Django 项目已经成功创建并运行起来了!

    在命令行窗口中,按下 Ctrl + C 可以停止开发服务器。

Part 3: 创建一个应用 (App)

Django 鼓励将项目功能拆分成独立、可复用的“应用”(App)。每个 App 通常负责一个特定的功能模块。

  1. 在项目根目录下创建应用:

    确保你仍在包含 manage.py 的项目根目录下,运行以下命令:

    Bash

    python manage.py startapp myapp
    
    • startapp 是用于创建一个新应用的命令。
    • myapp 是你给应用取的名称。

    成功运行后,你的项目目录下会新增一个 myapp 目录:

    .
    ├── manage.py
    ├── myenv         # 你的虚拟环境目录
    ├── myproject     # 项目配置目录
    └── myapp         # 新增的应用目录
        ├── migrations    # 数据库迁移文件目录
        ├── __init__.py
        ├── admin.py      # 应用的管理后台配置
        ├── apps.py       # 应用的配置
        ├── models.py     # 应用的模型定义
        ├── tests.py      # 应用的测试
        └── views.py      # 应用的视图定义
    
  2. 将应用添加到项目设置:

    新创建的应用需要添加到项目的配置文件 settings.py 中,让 Django 知道这个应用的存在。

    • 打开 myproject/settings.py 文件。
    • 找到 INSTALLED_APPS 列表。
    • 在列表中添加你的应用名称 'myapp'
    Python

    # myproject/settings.py
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myapp', # <--- 在这里添加你的应用名称
    ]
    
    # ... 文件其他内容
    

Part 4: 定义第一个视图 (View)

视图负责接收 Web 请求并返回响应。我们先创建一个简单的视图,只返回一段文本。

  1. 打开应用的 views.py 文件: myapp/views.py

  2. 编写一个简单的函数式视图 (FBV):

    Python

    # myapp/views.py
    
    from django.http import HttpResponse # 需要导入 HttpResponse 类
    
    def index(request):
        # 这个函数接收一个 HttpRequest 对象作为参数 (命名为 request 是约定)
        # 它返回一个 HttpResponse 对象,其中包含了要发送给浏览器的文本内容
        return HttpResponse("Hello, Django!")
    

Part 5: 配置 URL 路由 (URL Routing)

我们需要告诉 Django,当用户访问某个特定的 URL 时,应该由哪个视图来处理。这通过配置 URL 路由实现。通常,一个应用有自己的 urls.py 文件,然后项目的根 urls.py 包含应用的 URL。

  1. 在应用目录中创建 urls.py 文件:

    在 myapp 目录下创建一个新的 Python 文件 urls.py。

  2. 编辑应用的 urls.py:

    定义一个 urlpatterns 列表,其中包含 URL 模式与视图函数的对应关系。

    Python

    # myapp/urls.py
    
    from django.urls import path # 需要导入 path 函数
    from . import views # 从当前应用目录导入 views.py
    
    # urlpatterns 是一个列表,定义了 URL 模式
    urlpatterns = [
        # path(route, view, name=None)
        # route: 匹配的 URL 路径 (这里是空字符串 '', 表示匹配应用 URL 的根路径)
        # view: 处理该请求的视图函数 (views.index)
        # name: 给这个 URL 起一个名字,方便在模板或代码中引用 (可选但推荐)
        path('', views.index, name='index'),
        # 你可以在这里添加更多 path() 来定义其他 URL
        # path('about/', views.about, name='about'),
    ]
    
  3. 编辑项目的根 urls.py:

    打开 myproject/urls.py 文件,包含 myapp 应用的 URL 配置。

    Python

    # myproject/urls.py
    
    from django.contrib import admin
    from django.urls import path, include # 需要导入 include 函数
    
    urlpatterns = [
        # 这是 Django 内置管理后台的 URL
        path('admin/', admin.site.urls),
    
        # 使用 include() 将 myapp 应用的 URL 配置包含进来
        # 当用户访问以 'myapp/' 开头的 URL 时,Django 会将剩余的 URL 部分传递给 myapp.urls 去处理
        path('myapp/', include('myapp.urls')),
    
        # 你也可以直接在项目根 urls.py 中定义简单的 URL 模式
        # path('', views.home, name='home'), # 如果你的 home 视图在项目根目录的 views.py 中
    ]
    
  4. 测试第一个视图和 URL:

    确保你在项目根目录(manage.py 所在目录),运行开发服务器:

    Bash

    python manage.py runserver
    

    打开浏览器,访问 http://127.0.0.1:8000/myapp/。你应该能看到页面上显示“Hello, Django!”。这表明你成功地将一个 URL 映射到了一个视图,并返回了响应。

Part 6: 使用模板 (Template)

直接在视图中返回 HTML 字符串不适合复杂的页面。Django 使用模板来分离视图逻辑和页面展示。

  1. 创建模板目录和模板文件:

    按照 Django 的约定,模板文件通常放在应用的 templates 目录下的一个与应用同名的子目录中。

    • myapp 目录下创建 templates 目录:myapp/templates/
    • templates 目录下创建 myapp 子目录:myapp/templates/myapp/
    • myapp/templates/myapp/ 目录下创建一个新的 HTML 文件,例如 index.html
  2. 编辑模板文件 (myapp/templates/myapp/index.html):

    编写一些 HTML 代码,并使用 Django 模板语言 (DTL) 显示一个变量。

    HTML

    <!DOCTYPE html>
    <html>
    <head>
        <title>我的第一个 Django 模板</title>
    </head>
    <body>
        {# 这是一个模板注释 #}
        <h1>{{ greeting }}</h1> {# 使用 {{ 变量名 }} 显示从视图传递的变量 #}
        <p>这是一个使用模板渲染的页面。</p>
    </body>
    </html>
    
  3. 修改视图以使用模板:

    修改 myapp/views.py 中的 index 视图,使用 render() 快捷函数来加载和渲染模板。render() 函数会自动查找 templates 目录。

    Python

    # myapp/views.py
    
    # from django.http import HttpResponse # 不再直接返回 HttpResponse
    from django.shortcuts import render # 需要导入 render 函数
    
    def index(request):
        # 准备传递给模板的数据 (上下文)
        context = {
            'greeting': 'Hello from Template Context!', # 定义一个变量 'greeting'
            'other_variable': '...' # 可以传递更多变量
        }
    
        # 使用 render 函数加载并渲染模板
        # render(request, template_name, context=None)
        # request: HttpRequest 对象
        # template_name: 模板文件相对于某个 templates 目录的路径 (如 'myapp/index.html')
        # context: 传递给模板的数据字典
        return render(request, 'myapp/index.html', context)
    
  4. 测试使用模板的视图:

    确保服务器正在运行,再次访问 http://127.0.0.1:8000/myapp/。你应该能看到一个标准的 HTML 页面,其中 H1 标题显示着“Hello from Template Context!”。这表明你成功地将数据从视图传递到了模板并进行了渲染。

Part 7: 使用模型 (Model) 与数据库

Django 的 ORM 让你用 Python 类定义数据结构,然后自动映射到数据库。

  1. 数据库设置:

    Django 默认使用 SQLite 数据库,配置在 settings.py 的 DATABASES 字典中。对于入门而言,默认设置即可,无需安装额外数据库软件。

  2. 定义第一个模型:

    打开应用的 models.py 文件 (myapp/models.py),定义一个简单的 Item 模型。

    Python

    # myapp/models.py
    
    from django.db import models # 需要导入 models 模块
    
    class Item(models.Model): # 继承自 models.Model
        # 定义模型字段,对应数据库表的列
        name = models.CharField(max_length=100) # 字符串字段,最大长度 100
        created_at = models.DateTimeField(auto_now_add=True) # 日期时间字段,创建时自动设置当前时间
    
        # __str__ 方法定义了模型对象在被打印或在管理后台显示时的字符串表示
        def __str__(self):
            return self.name
    
        # 你可以在这里定义其他字段,如 models.IntegerField(), models.TextField(), models.BooleanField(), models.ForeignKey() 等
    
  3. 创建数据库迁移 (Migrations):

    模型定义完成后,需要告诉 Django 根据模型的变化创建数据库迁移文件。

    • 确保你在项目根目录(manage.py 所在目录),并且虚拟环境已激活。
    • 运行命令: Bash

      python manage.py makemigrations myapp # 指定应用名称
      
    • Django 会检测到你在 myapp/models.py 中定义了 Item 模型,并在 myapp/migrations/ 目录下生成一个 Python 文件(例如 0001_initial.py),记录了创建 Item 表的步骤。
  4. 应用数据库迁移:

    生成迁移文件后,需要将其应用到数据库,创建实际的数据库表。

    • 确保你在项目根目录,虚拟环境已激活。
    • 运行命令: Bash

      python manage.py migrate
      
    • Django 会执行所有未应用的迁移,包括你的应用和 Django 内置应用(如用户认证、管理后台)的迁移,创建所需的数据库表。如果使用 SQLite,你会在项目根目录看到一个 db.sqlite3 文件被创建或更新。

Part 8: 使用 Django 自带的管理后台管理数据

Django 的杀手级功能之一是自动化的管理后台,可以让你方便地查看和管理数据库中的数据。

  1. 创建超级用户 (Superuser):

    你需要创建一个超级用户账号来登录管理后台。

    • 确保你在项目根目录,虚拟环境已激活。
    • 运行命令: Bash

      python manage.py createsuperuser
      
    • 按照提示输入用户名、邮箱(可选)和密码。密码输入时不会显示字符,输完按回车即可。
  2. 注册模型到管理后台:

    默认情况下,你的自定义模型不会显示在管理后台。你需要显式地注册它们。

    • 打开应用的 admin.py 文件 (myapp/admin.py)。
    • 导入你的模型,并使用 admin.site.register() 函数注册。
    Python

    # myapp/admin.py
    
    from django.contrib import admin
    from .models import Item # 导入你的 Item 模型
    
    # 在管理后台注册 Item 模型
    admin.site.register(Item)
    
    # 你也可以在这里注册其他模型
    # from .models import AnotherModel
    # admin.site.register(AnotherModel)
    
  3. 访问管理后台并添加数据:

    • 确保开发服务器正在运行 (python manage.py runserver)。
    • 打开浏览器,访问 http://127.0.0.1:8000/admin/
    • 使用你刚刚创建的超级用户账号登录。
    • 登录成功后,你应该能在侧边栏看到你的应用名称(myapp)以及下面的 Items
    • 点击 Items,然后点击右上角的“添加 Item”按钮。
    • 输入一些 Item 数据(只需要输入 Name 字段,created_at 会自动生成),点击“保存”。添加几个 Item。

Part 9: 在页面上显示数据库中的数据

现在,我们回到前面创建的页面,修改视图和模板,从数据库中获取 Item 数据并显示出来。

  1. 修改视图,从数据库获取数据:

    打开 myapp/views.py 文件,修改 index 视图,使用 ORM 查询 Item 模型的数据。

    Python

    # myapp/views.py
    
    from django.shortcuts import render
    from .models import Item # 需要导入你的 Item 模型类
    
    def index(request):
        # 使用 ORM 从数据库获取所有的 Item 对象
        # Item.objects 是一个管理器,提供数据库查询接口
        # .all() 方法获取所有的 Item 对象,返回一个 QuerySet (类似列表)
        items_list = Item.objects.all()
    
        # 准备传递给模板的数据
        context = {
            'greeting': '我的项目列表',
            'items': items_list # 将获取到的 Item 列表传递给模板,变量名为 'items'
        }
    
        # 渲染模板
        return render(request, 'myapp/index.html', context)
    
  2. 修改模板,显示获取到的数据:

    打开 myapp/templates/myapp/index.html 文件,使用 Django 模板语言循环遍历 items 列表并显示每个 Item 的信息。

    HTML

    <!DOCTYPE html>
    <html>
    <head>
        <title>我的项目列表</title>
    </head>
    <body>
        <h1>{{ greeting }}</h1>
    
        <h2>项目列表:</h2>
        {% if items %} {# 检查 items 列表是否存在且非空 #}
            <ul>
            {% for item in items %} {# 模板标签:循环遍历 items 列表,每次循环将当前元素赋给 item #}
                <li>
                    {# 显示当前 item 对象的属性 #}
                    {{ item.name }} (创建时间: {{ item.created_at }})
                </li>
            {% endfor %}
            </ul>
        {% else %}
            {# 如果 items 列表为空,显示此段落 #}
            <p>目前还没有项目数据。</p>
        {% endif %}
    
    </body>
    </html>
    
  3. 最终测试:

    确保开发服务器正在运行,访问 http://127.0.0.1:8000/myapp/。现在,你应该能看到页面上显示着“我的项目列表”,并且下方列出了你在管理后台添加的所有 Item 数据!

Part 9: 总结回顾

恭喜你!你已经完成了你的第一个 Django Web 应用的入门开发。在这个过程中,你接触并使用了 Django 的核心组件和开发流程:

  • 虚拟环境和 pip: 搭建和管理项目环境。
  • django-adminmanage.py 创建项目和应用,运行服务器,执行管理任务。
  • 项目和应用结构: 理解 Django 的模块化组织方式。
  • 视图 (View): 编写处理请求的 Python 函数。
  • URL 路由 (URLconf): 配置 URL 与视图的映射。
  • 模板 (Template): 使用 Django 模板语言渲染 HTML 页面。
  • 模型 (Model) 和 ORM: 使用 Python 类定义数据结构,并通过 ORM 与数据库交互。
  • 数据库迁移 (Migrations): 管理数据库 schema 变化。
  • 管理后台 (Admin Site): 利用自动生成的界面管理数据。

这只是 Django 的冰山一角,但它涵盖了构建任何 Django 应用都必需的核心概念和步骤。接下来,你可以深入学习 Django 的更多功能,例如:

  • 基于类的视图 (CBV): 更强大的视图组织方式。
  • 表单 (Forms): 处理用户输入和验证。
  • 用户认证和授权: 构建用户系统。
  • 静态文件和媒体文件: 处理 CSS、JS、图片等资源。
  • 测试: 编写自动化测试用例。
  • 部署: 将应用部署到生产环境。

希望这个入门实战指南能帮助你顺利迈进 Django 的大门!继续探索和实践吧!


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

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

相关文章

微信小程序 tabbar底部导航栏

官方文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#tabBar 一、常规菜单格式 在app.json 文件中配置&#xff0c;其他关键点详见官方文档&#xff0c;后续更新不规则图标的写法

Unity InputSystem触摸屏问题

最近把Unity打包后的windows软件放到windows触摸屏一体机上测试&#xff0c;发现部分屏幕触摸点击不了按钮&#xff0c;测试了其他应用程序都正常。 这个一体机是这样的&#xff0c;一个电脑机箱&#xff0c;外接一个可以触摸的显示屏&#xff0c;然后UGUI的按钮就间歇性点不了…

Linux Awk 深度解析:10个生产级自动化与云原生场景

看图猜诗&#xff0c;你有任何想法都可以在评论区留言哦~ 摘要 Awk 作为 Linux 文本处理三剑客中的“数据工程师”&#xff0c;凭借字段分割、模式匹配和数学运算三位一体的能力&#xff0c;成为处理结构化文本&#xff08;日志、CSV、配置文件&#xff09;的终极工具。本文聚…

免费版还是专业版?Dynadot 域名邮箱服务选择指南

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

旋转磁体产生的场-对导航姿态的影响

pitch、yaw、roll是描述物体在空间中旋转的术语&#xff0c;通常用于计算机图形学或航空航天领域中。这些术语描述了物体绕不同轴旋转的方式&#xff1a; Pitch&#xff08;俯仰&#xff09;&#xff1a;绕横轴旋转&#xff0c;使物体向前或向后倾斜。俯仰角度通常用来描述物体…

Day11(回溯法)——LeetCode79.单词搜索

1 前言 今天主要刷了一道热题榜中回溯法的题&#xff0c;现在的计划是先刷热题榜专题吧&#xff0c;感觉还是这样见效比较快。因此本文主要介绍LeetCode79。 2 LeetCode79.单词搜索(LeetCode79) OK题目描述及相关示例如下&#xff1a; 2.1 题目分析解决及优化 感觉回溯的方…

PostgreSQL 分区表——范围分区SQL实践

PostgreSQL 分区表——范围分区SQL实践 1、环境准备1-1、新增原始表1-2、执行脚本新增2400w行1-3、创建pg分区表-分区键为创建时间1-4、创建24年所有分区1-5、设置默认分区&#xff08;兜底用&#xff09;1-6、迁移数据1-7、创建分区表索引 2、SQL增删改查测试2-1、查询速度对比…

SpringCloud 微服务复习笔记

文章目录 微服务概述单体架构微服务架构 微服务拆分微服务拆分原则拆分实战第一步&#xff1a;创建一个新工程第二步&#xff1a;创建对应模块第三步&#xff1a;引入依赖第四步&#xff1a;被配置文件拷贝过来第五步&#xff1a;把对应的东西全部拷过来第六步&#xff1a;创建…

【Python爬虫基础篇】--4.Selenium入门详细教程

先解释&#xff1a;Selenium&#xff1a;n.硒&#xff1b;硒元素 目录 1.Selenium--简介 2.Selenium--原理 3.Selenium--环境搭建 4.Selenium--简单案例 5.Selenium--定位方式 6.Selenium--常用方法 6.1.控制操作 6.2.鼠标操作 6.3.键盘操作 6.4.获取断言信息 6.5.…

Langchain检索YouTube字幕

创建一个简单搜索引擎&#xff0c;将用户原始问题传递该搜索系统 本文重点&#xff1a;获取保存文档——保存向量数据库——加载向量数据库 专注于youtube的字幕&#xff0c;利用youtube的公开接口&#xff0c;获取元数据 pip install youtube-transscript-api pytube 初始化 …

【Linux网络】应用层自定义协议与序列化及Socket模拟封装

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

客户案例:西范优选通过日事清实现流程与项目管理的优化

近几年来&#xff0c;新零售行业返璞归真&#xff0c;从线上销售重返线下发展&#xff0c;满足消费者更加多元化的需求&#xff0c;国内家居集合店如井喷式崛起。为在激烈的市场竞争中立于不败之地&#xff0c;西范优选专注于加强管理能力、优化协作效率的“内功修炼”&#xf…

LabVIEW实现Voronoi图绘制功能

该 LabVIEW 虚拟仪器&#xff08;VI&#xff09;借助 MathScript 节点&#xff0c;实现基于手机信号塔位置计算 Voronoi 图的功能。通过操作演示&#xff0c;能直观展示 Voronoi 图在空间划分上的应用。 各部分功能详细说明 随机地形创建部分 功能&#xff1a;根据 “Maximum a…

爬虫学习——获取动态网页信息

对于静态网页可以直接研究html网页代码实现内容获取&#xff0c;对于动态网页绝大多数都是页面内容是通过JavaScript脚本动态生成(也就是json数据格式)&#xff0c;而不是静态的&#xff0c;故需要使用一些新方法对其进行内容获取。凡是通过静态方法获取不到的内容&#xff0c;…

创新项目实训开发日志4

一、开发简介 核心工作内容&#xff1a;logo实现、注册实现、登录实现、上传gitee 工作时间&#xff1a;第十周 二、logo实现 1.设计logo 2.添加logo const logoUrl new URL(/assets/images/logo.png, import.meta.url).href <div class"aside-first">…

常见接口测试常见面试题(JMeter)

JMeter 是 Apache 提供的开源性能测试工具&#xff0c;主要用于对 Web 应用、REST API、数据库、FTP 等进行性能、负载和功能测试。​它支持多种协议&#xff0c;如 HTTP、HTTPS、JDBC、SOAP、FTP 等。 在一个线程组中&#xff0c;JMeter 的执行顺序通常为&#xff1a;配置元件…

计算机组成与体系结构:缓存(Cache)

目录 为什么需要 Cache&#xff1f; &#x1f9f1; Cache 的分层设计 &#x1f539; Level 1 Cache&#xff08;L1 Cache&#xff09;一级缓存 &#x1f539; Level 2 Cache&#xff08;L2 Cache&#xff09;二级缓存 &#x1f539; Level 3 Cache&#xff08;L3 Cache&am…

Flutter 在全新 Platform 和 UI 线程合并后,出现了什么大坑和变化?

Flutter 在全新 Platform 和 UI 线程合并后&#xff0c;出现了什么大坑和变化&#xff1f; 在两个月前&#xff0c;我们就聊过 3.29 上《Platform 和 UI 线程合并》的具体原因和实现方式&#xff0c;而事实上 Platform 和 UI 线程合并&#xff0c;确实为后续原生语言和 Dart 的…

stm32之GPIO函数详解和上机实验

目录 1.LED和蜂鸣器1.1 LED1.2 蜂鸣器 2.实验2.1 库函数&#xff1a;RCC和GPIO2.1.1 RCC函数1. RCC_AHBPeriphClockCmd2. RCC_APB2PeriphClockCmd3. RCC_APB1PeriphClockCmd 2.1.2 GPIO函数1. GPIO_DeInit2. GPIO_AFIODeInit3. GPIO_Init4. GPIO_StructInit5. GPIO_ReadInputDa…

用 PyQt5 和 asyncio 打造接口并发测试 GUI 工具

接口并发测试是测试工程师日常工作中的重要一环&#xff0c;而一个直观的 GUI 工具能有效提升工作效率和体验。本篇文章将带你用 PyQt5 和 asyncio 从零实现一个美观且功能实用的接口并发测试工具。 我们将实现以下功能&#xff1a; 请求方法选择器 添加了一个下拉框 QComboBo…