Django — 请求和响应

news2024/10/6 0:06:58

目录

  • 一、请求
    • 1、概念
    • 2、请求参数方式分类
    • 3、案例
      • 3.1、URL 路径参数
      • 3.2、查询字符串参数
      • 3.3、form 表单传参
      • 3.4、Json 格式参数
      • 3.5、上传文件
  • 二、响应
    • 1、HttpResponse
    • 2、JsonResponse
  • 三、GET 和 POST 区别
    • 1、相同点
    • 2、不同点

一、请求

1、概念

请求(Request)就是浏览器(客户端)通过 HTTP 协议或者 HTTPS 协议向服务器发送请求获取数据

2、请求参数方式分类

  • URL 路径参数
  • 查询字符串参数
  • 请求体参数
    • form 表单传参
    • json 格式参数
    • 上传文件

3、案例

3.1、URL 路径参数

re_path:路径是动态的,一般使用 re_path,写法:(?P<变量>正则表达式)

<> 表示接收的数据,^ 表示路由开始,$ 表示路由结尾

# Project 项目中的 urls.py
from django.contrib import admin  # 导入 Django 的管理员模块,用于管理网站后台
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由

# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由
    path('', include('users.urls'))
]
# 子应用的 urls.py
from django.urls import path,re_path # 导入 Django 的 path 函数,用于配置 URL 路由,导入 re_path,用于正则匹配
from .import views # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 weacher 视图函数
    re_path(r'^weather/(?P<city>[a-z]+)/(?P<year>\d{8})/$',views.weather)
]
# 子应用的 views.py
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def weather(request,city,year):
    """
    天气
    :param request:
    :param city:城市
    :param year:日期
    :return:
    """
    print(city)
    print(year)
    return HttpResponse('获取天气成功')

在 manage.py 文件下运行代码,访问网址 http://127.0.0.1:8000/weather/shanghai/20230101/ 显示以下页面

在这里插入图片描述

3.2、查询字符串参数

不是路由匹配的东西,可以使用 request 模块获取数据

在地址栏输入 http://127.0.0.1:8000/qs/?a=111&b=222&a=333

# Project 项目中的 urls.py
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由,include 函数,用于将其它 URL 模式包含在当前 URL 配置中

# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由
    path('', include('users.urls'))
]
# 子应用的 urls.py
from django.urls import path,re_path  # 导入 Django 的 path 函数,用于配置 URL 路由,导入 re_path,用于正则匹配
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 querys 视图函数
    path('qs/',views.querys)
]
# 子应用的 views.py
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def querys(request):
    # 获取数据,查询字符串是不区分请求方式的
    a = request.GET.get("a")
    b = request.GET.get("b")
    print(a) # 333
    print(type(a)) # <class 'str'>
    print(b) # 222
    # 获取多个查询字符串
    a_new = request.GET.getlist('a')
    print(a_new) # ['111', '333']
    print(type(a_new)) # <class 'list'>
    return HttpResponse('XXX')

3.3、form 表单传参

# Project 项目中的 urls.py
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由,include 函数,用于将其它 URL 模式包含在当前 URL 配置中

# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由
    path('', include('users.urls'))
]
# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 ge_form 视图函数
    path('ge_form/',views.ge_form)
]
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def ge_form(request):
    """
    获取表单参数
    :param request:
    :return:
    """
    print(request) # <WSGIRequest: GET '/ge_form/'>
    return HttpResponse("XXX123")

Apifox 接口管理工具下载

在这里插入图片描述

状态码显示 403,将下面这个认证注释掉,需要认证的可以自己写一个认证。

# setting.py
# 中间件
MIDDLEWARE = [
    # Django 自带的 CSRF 保护中间件
    # 'django.middleware.csrf.CsrfViewMiddleware',
]

打断点,改为调试模式后,再次点击发送,可以看到传递的数据。

在这里插入图片描述

打印数据。

# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def ge_form(request):
    """
    获取表单参数
    :param request:
    :return:
    """
    print(request) # <WSGIRequest: GET '/ge_form/'>
    # 获取数据
    username = request.POST.get('username')
    pwd = request.POST.get('pwd')
    print(username) # abc
    print(pwd) # 123456
    return HttpResponse("XXX123")

3.4、Json 格式参数

# Project 项目中的 urls.py
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由,include 函数,用于将其它 URL 模式包含在当前 URL 配置中

# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由
    path('', include('users.urls'))
]
# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 get_json 视图函数
    path('get_json/',views.get_json)
]
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def get_json(request):
    '''
    获取json请求数据
    :param request:
    :return:
    '''
    print(request) # <WSGIRequest: POST '/get_json/'>
    return HttpResponse('JSON')

在这里插入图片描述

打断点,改为调试模式后,再次点击发送,可以看到传递的数据。

在这里插入图片描述

打印数据。

# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象
import json

# Create your views here.

# 定义视图函数
def get_json(request):
    '''
    获取json请求数据
    :param request:
    :return:
    '''
    print(request) # <WSGIRequest: POST '/get_json/'>
    # 获取数据
    json_bytes = request.body
    print(json_bytes) # b'{\r\n    "username":"abc",\r\n    "age":18\r\n}'
    # 解码
    json_str = json_bytes.decode()
    print(json_str)
    # {
    #     "username": "abc",
    #     "age": 18
    # }
    print(type(json_str)) # <class 'str'>
    # 字符串转字典
    json_dict = json.loads(json_str)
    print(json_dict) # {'username': 'abc', 'age': 18}
    print(type(json_dict)) # <class 'dict'>
    username = json_dict.get('username')
    print(username) # abc
    age = json_dict.get('age')
    print(age)  # 18
    return HttpResponse('JSON')

3.5、上传文件

上传单张图片并保存

# Project 项目中的 urls.py
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由,include 函数,用于将其它 URL 模式包含在当前 URL 配置中

# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由
    path('', include('users.urls'))
]
# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 get_file 视图函数
    path('get_file/',views.get_file)
]
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def get_file(request):
    '''
    上传单个文件
    :param request:
    :return:
    '''
    print(request)
    return HttpResponse('xxxx')

在这里插入图片描述

打断点,改为调试模式后,再次点击发送,可以看到传递的数据。

在这里插入图片描述

改为 POST 请求。

在这里插入图片描述

在这里插入图片描述

保存上传文件。

在 setting.py 文件中新增以下代码,并且在根目录下新建文件夹 media。

# setting.py
# 指定上传文件的存储路径
MEDIA_ROOT = BASE_DIR / 'media'
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象
from Project import settings

# Create your views here.

# 定义视图函数
def get_file(request):
    '''
    上传单个文件
    :param request:
    :return:
    '''
    print(request)
    # 从请求中获取上传的文件,'picture' 是文件字段的名称
    file = request.FILES['picture']
    # 打印上传的文件对象
    print(file)
    # 构建保存文件的完整路径,使用 settings.MEDIA_ROOT 作为根目录
    # file.name 是上传文件的原始文件名
    image = '%s/%s' % (settings.MEDIA_ROOT, file.name)
    # 打印保存文件的完整路径
    print(image)
    # 打开文件并将上传的文件数据写入磁盘
    with open(image, 'wb') as f:
        for files in file.chunks():
            f.write(files)
    return HttpResponse('上传成功')

导入 from Project import settings 的快捷方式。

在这里插入图片描述

在这里插入图片描述

上传多张图片并保存

方式一:

在这里插入图片描述

在这里插入图片描述

# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 get_files 视图函数
    path('get_files/',views.get_files)
]
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象
from Project import settings

# Create your views here.

# 定义视图函数
def get_files(request):
    '''
    上传多个文件
    :param request:
    :return:
    '''
    print(request)
    # 获取请求中上传的多个文件,request.FILES 是一个字典,其中键是文件字段的名称
    pictures = request.FILES
    # 遍历上传的每个文件
    for i in pictures:
        # 获取当前文件对象
        file = pictures[i]
        # 构建保存文件的完整路径,使用 settings.MEDIA_ROOT 作为根目录
        # file.name 是上传文件的原始文件名
        image = '%s/%s' % (settings.MEDIA_ROOT, file.name)
        # 打印保存文件的完整路径
        print(image)
        # 打开文件并将上传的文件数据写入磁盘
        with open(image, 'wb') as f:
            for files in file.chunks():
                f.write(files)
    return HttpResponse('上传成功')

方式二:

在这里插入图片描述

在这里插入图片描述

# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 get_files 视图函数
    path('get_pictures/',views.get_pictures)
]
# 定义视图函数
def get_pictures(request):
    '''
    上传多个文件
    :param request:
    :return:
    '''
    print(request)
    # 使用 request.FILES.getlist('picture') 获取多个上传的文件对象
    # 'picture' 是表单中文件字段的名称
    pictures = request.FILES.getlist('picture')
    # 遍历上传的每个文件
    for file in pictures:
        # 构建保存文件的完整路径,使用 settings.MEDIA_ROOT 作为根目录
        # file 是文件对象,而不是文件名
        image = '%s/%s' % (settings.MEDIA_ROOT, file)
        # 打印保存文件的完整路径
        print(image)
        # 打开目标文件并将上传的文件数据写入磁盘
        with open(image, 'wb') as f:
            for files in file.chunks():
                f.write(files)
    return HttpResponse('上传成功')

二、响应

响应(Response)是用于向客户端(通常是 Web 浏览器)发送数据的方式。

1、HttpResponse

  • HttpResponse 是 Django 中最常用的响应类型之一,它用于发送 HTML 内容或文本数据作为 HTTP 响应。
  • HttpResponse 的构造函数接受一个字符串参数,该字符串包含要发送的内容。
  • HttpResponse 可以设置 HTTP 响应的状态码、响应头、Cookie 等。
# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 my_view 视图函数
    path('my_view/',views.my_view)
]
# 子应用的 views.py
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def my_view(request):
    """
    HttpResponse 响应
    :param request:
    :return:
    """
    # 创建一个字符串变量 content,内容为 "Hello, world!"
    content = "Hello, world!"

    # 创建一个 HTTP 响应对象 HttpResponse,将 content 作为响应内容
    # content_type 参数指定了响应的内容类型为 "text/plain"
    response = HttpResponse(content, content_type="text/plain")

在这里插入图片描述

2、JsonResponse

  • JsonResponse 是用于发送 JSON 格式数据的特殊响应类型。它常用于向客户端提供数据,特别是在前后端分离的应用中,前端通常通过 AJAX 请求获取 JSON 数据。

  • JsonResponse 的构造函数接受一个 Python 字典作为参数,它会自动将字典转换为 JSON 格式并发送给客户端。

  • JsonResponse 支持设置 HTTP 状态码、响应头、JSON 编码选项等。

传字典

# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 demo_view 视图函数
    path('demo_view/',views.demo_view)
]
# 子应用的 views.py
from django.http import JsonResponse  # 导入 Django 的 JsonResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def demo_view(request):
    """
    JsonResponse 响应
    :param request:
    :return:
    """
    # 创建一个字典变量 dit,包含两个键值对,分别是 'name' 和 'age'
    dit = {
        'name': 'abc',
        'age': 18
    }

    # 使用 JsonResponse 函数创建一个 JSON 格式的 HTTP 响应对象,并将 dit 字典作为数据传递给它
    return JsonResponse(dit)  # 写成 data=dit 也可以

在这里插入图片描述

传列表

传的值不是字典类型要加 safe=False

# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数

# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [
    # 配置 URL 路由,调用 views.py 中的 demo_view 视图函数
    path('demo_view2/',views.demo_view2)
]
# 子应用的 views.py
from django.http import JsonResponse  # 导入 Django 的 JsonResponse 类,用于创建 HTTP 响应对象

# Create your views here.

# 定义视图函数
def demo_view2(request):
    """
    JsonResponse 响应
    :param request:
    :return:
    """
    # 创建一个空列表 lst,用于存储字典数据
    lst = []
    # 创建一个字典变量 dit,包含两个键值对,分别是 'name' 和 'age'
    dit = {
        'name': 'abc',
        'age': 18
    }
    # 将 dit 字典添加到列表 lst 中
    lst.append(dit)
    # 使用 JsonResponse 函数创建一个 JSON 格式的 HTTP 响应对象,
    # 将 lst 列表作为数据传递给它,并设置 safe 参数为 False
    return JsonResponse(lst, safe=False)  # 写成 data=lst 也可以

在这里插入图片描述

三、GET 和 POST 区别

1、相同点

都是请求方式

都是使用 HTTP 协议,底层用的 TCP 传输

2、不同点

GET

把参数包含到 url 中,不适合传输敏感信息,不安全

通常在2048个字符以内,适合传输较少的数据

产生一个 TCP 包

POST

一般都是通过 request.body 里面传递的参数,不可见于 URL,更适合传输敏感信息,安全

没有严格的长度限制,适合传输大量数据

产生两个 TCP 包

记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~

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

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

相关文章

DDR4 眼图测试方法

DDR的全拼是Double Data Rate SDRAM双倍数据速率同步动态随机存取内存。主要就是用在电脑的内存。他的特点就是走线数量多&#xff0c;速度快&#xff0c;操作复杂&#xff0c;给测试和分析带来了很大的挑战。目前DDR技术已经发展到了DDR5&#xff0c;性能更高&#xff0c;功耗…

【算法练习Day4】 两两交换链表节点删除链表倒数第 N 个结点环形链表 II

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 两两交换链表中的节点一…

毫米波雷达 TI IWR1443 在 ROS 中进行 octomap 建图

个人实验记录 /mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/launch/1443_multi_3d_0.launch <launch><!-- Input arguments --><arg name"device" value"1443" doc"TI mmWave sensor device type [1443, 1642]"/><arg…

一例“msvc编译器O2优化导致的崩溃”的分析

1. 初步分析 某进程崩溃必现。 打开崩溃dmp&#xff0c;结合c源代码&#xff0c;崩溃大致发生在某dll代码里的这句&#xff1a;SAFE_DELETE(pContentData); En_HP_HandleResult CTcpOperation::OnClintReceive(HP_Client pSender, HP_CONNID dwConnID, const BYTE * pdata, i…

组队竞赛(int溢出问题)

目录 一、题目 二、代码 &#xff08;一&#xff09;没有注意int溢出 &#xff08;二&#xff09;正确代码 1. long long sum0 2. #define int long long 3. 使用现成的sort函数 一、题目 二、代码 &#xff08;一&#xff09;没有注意int溢出 #include <iostream&g…

机器学习的主要内容

分类任务 回归任务 有一些算法只能解决回归问题有一些算法只能解决分类问题有一些算法的思路既能解决回归问题&#xff0c;又能解决分类问题 一些情况下&#xff0c; 回归任务可以转化为分类任务&#xff0c; 比如我们预测学生的成绩&#xff0c;然后根据学生的成绩划分为A类、…

js制作柱状图的x轴时间, 分别展示 月/周/日 的数据

背景 有个需求是要做一个柱状图, x 轴是时间, y 轴是数量. 其中 x 轴的时间有三种查看方式: 月份/周/日, 也就是分别查看从当前日期开始倒推的最近每月/每周/每日的数量. 本篇文章主要是用来制作三种不同的 x 轴 从当前月开始倒推月份 注意 getMonth() 函数可以获取当前月份…

【【萌新的FPGA学习之实战流水灯】】

萌新的FPGA学习之实战流水灯 实验任务 本节的实验任务是使用领航者底板上的两个 PL LED 灯顺序点亮并熄灭&#xff0c;循环往复产生流水灯的效 果&#xff0c;流水间隔时间为 0.5s。 1MHz&#xff1d;1000000Hz 10的6次方 1ns&#xff1d;10的-9次方秒 开发板晶振50Mhz 计算得…

如何看待Unity新的收费模式?

文章目录 背景Unity的论点开发者的担忧如何看待Unity新的收费模式&#xff1f;1. 理解Unity的立场2. 考虑小型开发者3. 探索替代方案4. 对市场变化保持敏感5. 提高游戏质量 结论 &#x1f389; 如何看待Unity新的收费模式&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1…

R语言柱状图直方图 histogram

柱状图简介 柱状图也叫直方图&#xff0c;是展示连续性数值的分布状况。在x轴上将连续型数值分为一定数量的组&#xff0c;y轴显示对应值的频数。 R基本的柱状图 hist 我们用R自带的Orange数据来画图。 > head(Orange)Tree age circumference(圆周长) 1 1 118 …

Docker搭建DNS服务器--nouse

前言 DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。 安装 2.1 实验环境 IP 系统版本 角色 192.168.40.121 Ubuntu 22.10 DNS服务器 192.168.40.122 Ubuntu 22.10 测试机器 2.2 …

数据库选型参考

嵌入式数据库 SQLite、Berkeley DB、Derby、H2、HSQL DB SQLite&#xff1a; SQLite是一种非常流行的文件型数据库&#xff0c;它是一款轻量级、高性能、开源的嵌入式数据库引擎。SQLite采用C语言编写&#xff0c;可以在各种操作系统上运行&#xff0c;并且支持大多数标准SQL语…

csa从初阶到大牛(训练题1)

使用普通账户新建如下结构的2个目录&#xff1a; ~/t1/t2/t3/t4&#xff0c;~/m1/m2/m3/m4,并显示t1目录的详细信息&#xff0c;将/etc/passwd文件拷贝到~/t1/t2/t3目录下面&#xff0c;将~/t1/下面的内容拷贝到~/m1/m2/m/3/m4目录下面,最后删除~/t1/t2/t3下面的目录 # 创建目…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(四)

开始吧&#xff0c;做时间的主人&#xff01; 把时间分给睡眠&#xff0c;分给书籍&#xff0c;分给运动&#xff0c; 分给花鸟树木和山川湖海&#xff0c; 分给你对这个世界的热爱&#xff0c; 而不是将自己浪费在无聊的人和事上。 思维导图 函数 为什么需要函数 <!DO…

pytest框架运行时的参数,以及多线程分布式运行用例、运行指定模块用例

一、运行时的参数 在上一篇博客中写了pytest最为核心的运行时前后置如何设置&#xff0c;细心的朋友可能也会发现其实我们当时就加过运行时的参数-vs。 pytest.main([‘-s’])&#xff1a;能打印出调试信息&#xff0c;print()或者日志都可以直接打印在控制台上。 pytest.ma…

栈和队列1——栈的实现及其oj(括号匹配问题)

一&#xff0c;栈的概念 栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xf…

【100天精通Python】Day68:Python可视化_Matplotlib 绘制热力图,示例+代码

目录 1 值热力图&#xff08;Value Heatmap&#xff09;: 2 密度热力图&#xff08;Density Heatmap&#xff09; 3 时间热力图&#xff08;Time Heatmap&#xff09;: 4 空间热力图&#xff08;Spatial Heatmap&#xff09; 5 渐变热力图&#xff08;Gradient Heatmap&am…

C语言实现获取文件大小(字节数)

首先使用如下命令在当前文件夹&#xff0c;创建一个大小为1234578字节的空白文件&#xff1a; fsutil file createnew ./test.bin 12345678关于fsutil命令的介绍&#xff1a;Windows快速创建任意大小的空白文件 使用十六进制编辑器打开&#xff0c;可以看到内容全是0&#xf…

滴滴一面:线程池任务,如何设置优先级?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如滴滴、极兔、有赞、希音、百度、网易的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 如何设计线程池&#xff1f;请手写一个简单线程池&#xff1f; 就在昨天&…

肖sir__mysql之综合题练习__013

数据库题&#xff08;10*5&#xff09; 下面是一个学生与课程的数据库&#xff0c;三个关系表为&#xff1a; 学生表S&#xff08;Sid&#xff0c;SNAME,AGE,SEX&#xff09; 成绩表SC&#xff08;Sid&#xff0c;Cid&#xff0c;GRADE&#xff09; 课程表C&#xff08;Cid&…