【Django】-3- 处理HTTP响应

HttpResponse 家族” 的常用操作🌟

1. 设置状态码 👋

状态码是服务器告诉客户端 “请求处理结果” 的数字暗号(比如 404 表示 “没找到页面”)。Django 里有 3 种设置方式:

方式 1:直接写数字(简单粗暴)
HttpResponse(html, status=404)

HttpResponse()是类的实例化,后面讲解过程中遇到诸如此类的都是实例化加上传参噢

  • 直接传 status=404,告诉客户端 “你要的页面没找到”~

方式 2:用常量(优雅不易错)
from django.http import HttpResponseNotFound
# HttpResponseNotFound 的 status_code 就是 404,更语义化
HttpResponse(html, status=HttpResponseNotFound.status_code)

  • HttpResponseNotFound.status_code 本质还是 404,但用常量更易读,不容易写错数字~

方式 3:直接用响应类(最推荐!)
from django.http import HttpResponseNotFound
# 直接返回 HttpResponseNotFound,自动带 404 状态码
HttpResponseNotFound(html)

  • Django 给常用状态码做了 “专属响应类”(比如 HttpResponseNotFound 对应 404HttpResponseServerError 对应 500),用这些类更简洁,还能自动设置状态码和默认响应内容~

2. 设置响应头 📄

响应头是服务器给客户端的 “额外信息”(比如自定义头 name: beifan),可以用 headers 参数设置:

from django.http import HttpResponseNotFound
# 用 headers 传字典,自定义响应头
HttpResponseNotFound(html, headers={"name": "beifan"  # 客户端能拿到这个头~
})

  • 响应头是键值对,客户端(比如浏览器、Postman)可以读取这些信息,做特殊处理(比如前端根据头信息渲染不同内容)~

3. 设置 Cookies 🍪

Cookies 是服务器种在客户端的 “小饼干”,用来记录状态(比如登录态、偏好设置)。Django 里分两步:

步骤 1:创建响应对象
from django.http import HttpResponseNotFound
resp = HttpResponseNotFound(html)

步骤 2:种饼干!
# 设置 Cookie:name=beifan,客户端下次请求会带着它
resp.set_cookie("name", "beifan")
return resp

 视图必须要有返回值的!返回响应对象实例

客户端收到的响应头长这样:
'Set-Cookie': 'name=beifan; Path=/; ...'

cookie很长 我们要是自定义要写好多 所以直接传参让set_cookie帮助我们生成

  • 这串内容是服务器告诉客户端:“把 name=beifan 存在 Cookie 里,下次请求带上~”
  • 客户端(浏览器)会自动保存 Cookie,下次发请求时,在请求头里带 Cookie: name=beifan,服务器就能认出 “老用户” 啦~

4. 生成 JSON 响应 📦

前后端交互常用 JSON 格式,Django 有 JsonResponse 帮我们简化流程:

传统方式(手动转 JSON)
import json
from django.http import HttpResponse
data = {'num': num}
# 手动转 JSON 字符串 + 设置响应头
html = json.dumps(data)
return HttpResponse(html, content_type='application/json')

用 JsonResponse(偷懒神器)
from django.http import JsonResponse
# 直接传字典,自动转 JSON + 设置响应头
return JsonResponse({'num': num})

  • JsonResponse 会帮你做两件事:
    1. 把字典转成 JSON 字符串(json.dumps 的活)。
    2. 设置响应头 Content-Type: application/json(告诉客户端 “这是 JSON 数据”)。
  • 前端拿到响应后,直接 JSON.parse 就能用,超方便~

5. 生成重定向 🚀

重定向是服务器告诉客户端:“你要的资源不在这,去新地址找~”,常用场景:登录后跳转到首页、旧链接换新地址。

临时重定向(302)
from django.http import HttpResponseRedirect
# 告诉客户端:临时去百度,下次可能换地址
return HttpResponseRedirect("https://baidu.com")

  • 状态码 302,客户端下次请求可能还会走原来的地址(比如 “页面临时搬家,过几天搬回来”)。

永久重定向(301)
from django.http import HttpResponsePermanentRedirect
# 告诉客户端:永久去百度,以后别来旧地址了
return HttpResponsePermanentRedirect("https://baidu.com")

  • 状态码 301,客户端会记住 “旧地址失效了,以后直接访问新地址”(比如 “网站域名更换,永久迁移”)。

总结时间 ⏰

这 5 个知识点,都是 Django 响应的 “常用招式”:

  • 状态码:告诉客户端请求结果(成功 / 失败 / 跳转)。
  • 响应头:传额外信息,比如自定义头、Cookies。
  • Cookies:种在客户端的小饼干,记录状态。
  • JSON 响应:前后端数据交互的标准格式。
  • 重定向:让客户端去新地址找资源。

掌握这些,就能灵活控制服务器给客户端的响应啦~ 下次写 Django 视图,就可以按需选对应的 “响应招式”,轻松实现各种需求~ ✨

小练习🐱‍🏍

1. submit 视图函数
def submit(request: HttpRequest):# 打印请求体内容,用于调试,查看客户端发送的原始数据print("submit", request.body)  # 判断请求的方法是否为 POST(表单提交、Ajax  POST 等常用)if request.method == 'POST':  # 从 POST 请求数据中获取名为 "text" 的参数值,若不存在则返回 Nonetext = request.POST.get("text")  # 如果获取到的 text 有内容(非空)if text:  # 重定向到 result 视图对应的 URL,参数拼接需注意规范,这里简单示例return HttpResponseRedirect('http://127.0.0.1:8000/beifan/result')  else:# 如果 text 为空,暂时不做额外处理,pass 表示跳过pass  # 打开 submit.html 文件(需确保文件路径正确),以 utf-8 编码读取内容html = open('submit.html', encoding="utf-8").read()  # 将读取的 HTML 内容作为响应体,返回给客户端,通常用于展示页面return HttpResponse(html)  

  • 作用:主要处理客户端对 submit 路径的请求。GET 请求时返回 submit.html 页面用于展示(比如表单页面);POST 请求时尝试获取表单里的 text 字段,若有内容就重定向到 result 视图,用于模拟 “提交内容后跳转结果页” 的流程,常配合表单提交场景(如评论提交、数据录入后跳转反馈页 )。

2. result 视图函数
def result(request):# 打印请求体内容,调试用,查看客户端请求该视图时发送的原始数据print("result", request.body)  # 打开 result.html 文件(需确保路径正确),以 utf-8 编码读取内容html = open('result.html', encoding="utf-8").read()  # 将读取的 HTML 内容作为响应体返回,用于展示结果页面(比如评论提交成功提示页)return HttpResponse(html)  

  • 作用:处理客户端对 result 路径的请求,一般是在 submit 视图重定向过来后,返回 result.html 页面,用于展示提交后的结果(如提示评论已提交、展示数据处理结果等 ),是流程里 “提交 - 跳转 - 展示结果” 的最后一环。

这两段代码实现了一个简单的 “表单提交(或模拟提交)- 重定向 - 展示结果” 的基础流程,可用于搭建类似评论提交、信息录入并反馈结果的功能页面,不过实际项目中还需完善错误处理(如文件不存在、重定向 URL 拼接规则、POST 数据校验等 )。

什么情况下使用后端重定向什么时候前端重定向?😎

 

🧩 先搞懂两个 “工具人”

  1. 后端重定向:就是你代码里的 HttpResponseRedirect(...)
    → 作用:服务器直接对浏览器说:“别在这待着了,快去这个新地址!” 🌐→🚀

  2. 前端 Axios 重定向:前端用 Axios 发消息给服务器后,自己跳走
    → 作用:浏览器收到服务器回复后,自己对自己说:“服务器让我走啦,我去新地址咯!” 📩→🏃

 

🔍 什么时候必须喊 “后端重定向” 来干活?

当用户用 “传统表单” 提交数据时 → 必用后端重定向!

👉 什么是 “传统表单”?
就是前端页面长这样(你不用写,前端写):

<form action="/submit" method="post"><input name="text" type="text"> <!-- 输入框 --><button type="submit">提交</button> <!-- 提交按钮 -->
</form>

用户点 “提交” 后,浏览器会整个页面刷新,像 “重启” 一样把数据发给你的 submit 函数。

👉 为啥必须用后端重定向?
因为页面都 “重启” 了,只有服务器能指挥它 “重启后去哪”。就像你换工作,必须新公司(服务器)发 offer(重定向指令),你才知道去新地方~

👉 对应你的代码:
你的代码里,submit.html 很可能就是这个 “传统表单” 页面。所以当 text 有内容时,用 HttpResponseRedirect 让浏览器跳去结果页,完全正确! ✅

 

🔍 什么时候必须喊 “前端 Axios” 来干活?

当用户用 “不刷新页面” 的方式提交数据时 → 必用前端重定向!

👉 什么是 “不刷新页面” 提交?
就是用户点按钮后,页面不动(不闪、不重启),数据 “偷偷摸摸” 发给服务器。前端会写这样的代码(你不用关心,了解即可):

// 前端代码(假装是按钮点击后执行)
let text = 输入框里的内容;
// 用Axios发消息给后端的/submit
Axios.post("/submit", {text: text}).then(回复 => {// 收到服务器说“ok”后,自己跳走window.location.href = "http://127.0.0.1:8000/beifan/result";
});

👉 为啥必须用前端重定向?
因为页面没 “重启”,服务器喊 “去新地址” 它听不见!就像你在办公室坐着(页面没刷新),老板(服务器)远程发消息让你去会议室,必须你自己站起来走(前端自己跳转)~

👉 这时候你的代码要改吗?
要!不能用 HttpResponseRedirect 了,得告诉前端 “可以跳了”:

if text:  # 换成这个:告诉前端“成功啦,你自己跳吧”return JsonResponse({"状态": "成功"})  

📝 终极判断公式

看用户提交后页面会不会 “闪一下”:

  • 会闪(传统表单)→ 用后端重定向(你现在的代码)
  • 不闪(偷偷提交)→ 用前端 Axios 重定向(改后端代码为返回状态)

就这么简单!😉 代码目前适配 “会闪” 的情况,完全没问题~

点前端的submit提交按钮为什么会引起页面刷新,为什么可以让服务器做出响应啊

🥳 这个问题超基础也超重要!

 

为啥点 submit 按钮会让页面 “闪一下”(刷新)?

因为 <button type="submit"> 是 HTML 里的 “特殊按钮”,它天生就带着一个 “祖传使命”:
触发表单的 “默认提交行为” → 也就是让浏览器把表单数据打包,然后重新加载整个页面,把数据发给服务器~

就像你寄快递:

  • 表单里的输入框 = 快递盒里的东西 📦
  • submit 按钮 = 你喊 “快递员快来取件” 📣
  • 页面刷新 = 快递员把盒子拿走,同时给你换一个新的页面(服务器发回来的) 🔄

 

👉 第一步:前端 “拨号”(告诉服务器地址)

前端的表单标签里,早就写好了 “要把数据发给谁”:

<form action="/submit" method="post"> <!-- action="/submit" → 数据发给服务器的/submit地址 --><!-- method="post" → 用POST方式发(类似打电话的“加密线路”) --><input name="text"><button type="submit">提交</button>
</form>

就像你打电话前,先输好了对方的号码(/submit)~

 

👉 第二步:浏览器 “传声”(打包发送数据)

你点 submit 后:

  • 浏览器会把输入框里的内容(比如text的值)打包成 “数据包裹” 📦
  • 按照action地址,通过POST方式,发给你的 Django 服务器 🚀

 

👉 第三步:服务器 “接电话”(处理并回复)

你的 Django 后端早就 “守在电话旁” 了:

  • urls.py里配置了/submit地址对应submit函数 → 相当于 “听到铃声,接起电话” 📞
  • submit函数里的request.method == 'POST'会 “识别来电”,然后用request.POST.get("text")取出数据 → 相当于 “听对方说话,记下来” 📝
  • 最后返回HttpResponse或重定向 → 相当于 “挂电话前,说一句回复” 💬

 

👉 第四步:浏览器 “听回复”(刷新显示新内容)

服务器回复后:

  • 浏览器会刷新页面,显示服务器发回来的内容(可能是新页面,也可能是重定向后的地址) → 相当于 “挂了电话,看对方发来的短信” 📱

为什么点击button会触发打包数据传给服务器呢

<button>的 “身份标签” 决定了它的行为

<button>按钮有个关键属性叫type,就像它的 “工作证”:

  • type="submit"时(这是默认值,就算不写也会生效!)→ 它就成了 “提交专用按钮” 📤
  • type="button"时 → 它只是个 “普通按钮”,点了啥也不会自动提交 🚫

它和<form>标签是 “最佳搭档”

单独一个<button type="submit">啥也干不了,必须 “抱大腿”—— 放在<form>标签里面才行!

<form>标签就像一个 “数据收集箱” 📦,它会:

  • 通过action属性记住 “数据要发给谁”(比如action="/submit"就是发给服务器的/submit地址)
  • 通过method属性记住 “用什么方式发”(比如method="post"

这一切都是 HTML 规定好的 “自动流程”,不用写任何额外代码,浏览器会帮你完成从 “点击” 到 “发送” 的所有步骤~

 

一句话总结:

因为这个按钮是type="submit",并且 “住在”<form>标签里,所以点击时会触发<form>的 “自动打包 + 发送” 功能,就像按了开关一样自然~ 🔌→📤

实战: 接收 JSON 参数返回 JSON 和 接收表单参数重定向🐱‍🐉

需求 1:接收 JSON 参数,返回 JSON 内容

在 myapp/views.py 中编写视图:

from django.http import JsonResponse, HttpResponse
import jsondef receive_json(request):# 处理 POST 请求(通常客户端发 JSON 用 POST )if request.method == 'POST':  try:# 解析请求体的 JSON 数据,request.body 是原始字节数据,先转字符串再 loadsdata = json.loads(request.body.decode('utf-8'))  # 简单处理:把收到的 JSON 数据原样返回(也可按需加工,比如新增字段 )return JsonResponse(data)  except json.JSONDecodeError:# 如果解析失败,返回 400 错误,告知客户端数据格式有问题return HttpResponse("Invalid JSON data", status=400)  # 非 POST 请求,返回提示(也可根据需求调整,比如支持 GET 传 JSON 字符串,但 POST 更常用 )return HttpResponse("Only POST requests with JSON data are allowed", status=405)  

接着配置路由(关联视图 )

测试方式
可用 curl 命令测试(终端执行 ):

# 发送 JSON 数据,测试接收和返回
curl -X POST -H "Content-Type: application/json" -d '{"name": "beifan", "age": 18}' http://127.0.0.1:8000/receive-json/

或用 Postman 等工具,发送 POST 请求,Content-Type 设为 application/json,请求体填 JSON 内容(如 {"name": "beifan"} ),查看响应是否返回相同 JSON 数据。

需求 2:接收表单参数,重定向到结果页面

在 myapp/views.py 中补充视图:

from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import renderdef submit_form(request):# 处理 GET 请求,返回表单页面(这里简单用 HttpResponse 模拟,实际常用 render 加载 HTML 文件 )if request.method == 'GET':  return HttpResponse('''<html><body><form method="POST" action="/submit-form/"><input type="text" name="username" placeholder="用户名"><input type="submit" value="提交"></form></body></html>''')# 处理 POST 请求(表单提交 )elif request.method == 'POST':  # 获取表单里的 username 字段值,若不存在则为 Noneusername = request.POST.get('username')  if username:# 重定向到结果页面,可把参数拼接到 URL(简单示例,也可用其他方式传参 )return HttpResponseRedirect(f'/result/?username={username}')  else:# 若用户名为空,返回提示(实际可优化,比如留在表单页提示填写 )return HttpResponse("Username can't be empty", status=400)  def result_page(request):# 从请求中获取参数(重定向带过来的 )username = request.GET.get('username')  # 简单返回结果页面,展示用户名(实际常用 render 加载 HTML 文件渲染 )return HttpResponse(f'Hello, {username}! Submission successful.')  

 Django 里的JsonResponse

JsonResponse是 Django 专门用来返回JSON 格式数据的工具类,长得就像一个 “带 JSON 包装纸的响应包裹” 📦,专门给前端(比如用 Axios 发请求的场景)送数据~

 

🧐 它长什么样?(基本用法)

from django.http import JsonResponsedef my_view(request):# 准备要返回的数据(字典形式)data = {"status": "success",  ✅ 状态标识"message": "操作成功啦~",  💬 提示信息"result": {"name": "小明", "age": 18}  📊 具体数据}# 用JsonResponse包装数据并返回return JsonResponse(data)

 

✨ 它的 “特殊技能”

自动打包成 JSON 🧰
不用你手动把字典转成 JSON 字符串,JsonResponse会自动帮你做这件事~ 上面的代码返回给前端的会是这样的 JSON:

{"status": "success", "message": "操作成功啦~", "result": {"name": "小明", "age": 18}}

自带正确的 “身份标识” 🏷️

会自动在响应头里加上Content-Type: application/json,告诉前端:“我送的是 JSON 数据哦,快用 JSON 的方式解析我~”

可以定制行为 ⚙️

如果想返回列表(不是字典),需要加safe=False

return JsonResponse([1, 2, 3], safe=False)  📋 列表数据专用

可以指定编码:

return JsonResponse(data, json_dumps_params={'ensure_ascii': False})  🌐 支持中文不转义

 

🆚 和HttpResponse的区别

  • HttpResponse是 “万能包裹” 📦,可以返回 HTML、文本等任何内容,但返回 JSON 需要手动处理(比如用json.dumps())。
  • JsonResponse是 “JSON 专用包裹” ✨,专为返回 JSON 设计,更方便、更规范~

简单说,JsonResponse就像一个 “自动打包机”,把你的 Python 字典 / 列表快速变成前端能看懂的 JSON 数据,超适合前后端用 Ajax(比如 Axios)通信时使用哦~ 😎

json.loads() 是把 “JSON 格式的字符串(像python的字典一样)” 转成 Python 数据

而 json.load() 直接处理 “JSON 文件”

 📄 vs 📜

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

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

相关文章

《React Router深解:复杂路由场景下的性能优化与导航流畅性构建》

路由系统是连接用户操作与应用功能的中枢神经,而React Router作为React生态中处理路由逻辑的核心工具,其在复杂应用中的表现直接决定着用户体验的优劣。当应用规模扩张至数十甚至上百个路由,嵌套层级跨越多层,导航控制中的性能问题便会逐渐凸显——从首屏加载的延迟到路由切…

网络与信息安全有哪些岗位:(4)应急响应工程师

想知道网络与信息安全领域有哪些具体岗位吗&#xff1f; 网络与信息安全有哪些岗位&#xff1a;&#xff08;1&#xff09;网络安全工程师-CSDN博客 网络与信息安全有哪些岗位&#xff1a;&#xff08;2&#xff09;渗透测试工程师_网络安全渗透工程师-CSDN博客 网络与信息安…

Leetcode 3634. Minimum Removals to Balance Array

Leetcode 3634. Minimum Removals to Balance Array 1. 解题思路2. 代码实现 题目链接&#xff1a;3634. Minimum Removals to Balance Array 1. 解题思路 这一题思路上就是一个滑动窗口的思路。 我们首先将整个数组有序排列&#xff0c;然后分别从左向右考察每一个元素作为…

C#/.NET/.NET Core优秀项目和框架2025年7月简报

前言 每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架&#xff08;每周至少会推荐两个优秀的项目和框架当然节假日除外&#xff09;&#xff0c;推文中有项目和框架的详细介绍、功能特点、使用方式以及部分功能截图等。注意&#xff1a;排名不分先后&#xff0c;都是十分…

第 10 篇:深度学习的“军火库”——CNN、RNN与Transformer,AI如何看懂世界?

《人工智能AI之机器学习基石》系列⑩ 专栏核心理念: 用通俗语言讲清楚机器学习的核心原理,强调“洞察 + 技术理解 + 应用连接”,构建一个完整的、富有启发性的知识体系。 引

深度学习—功能性函数代码 common.py

函数&#xff1a;返回GPU def try_gpu(i0): #save"""如果存在&#xff0c;则返回gpu(i)&#xff0c;否则返回cpu()"""if torch.cuda.device_count() > i 1: # 如果存在第 i 个 GPUreturn torch.device(fcuda:{i}) # 返回第 i 个 GPU 设…

南太平洋金融基建革命:斐济-巴新交易所联盟的技术破局之路 ——从关税动荡到离岸红利,跨境科技如何重塑太平洋资本生态

一、今日焦点&#xff1a;全球关税震荡与南太平洋的“技术联盟”机遇 1. 特朗普关税大限引爆亚太市场波动&#xff0c;小经济体承压寻路 2025年8月1日&#xff0c;特朗普正式签署行政令&#xff0c;对多国征收10%-41%的“对等关税”。韩国首当其冲&#xff0c;综合指数暴跌近4%…

python爬取豆瓣电影评论通用代码

最近在自学python爬虫&#xff0c;今天闲来无事&#xff0c;爬了一下豆瓣数据 这个网站对于初学者来说还是很友好的注意&#xff1a;有python环境的朋友运行的时候&#xff0c;要把cookie换成自己的 通用性&#xff1a;可以自己换不同的电影id进行数据爬取 Tip&#xff1a;slee…

构建属于自己的第一个 MCP 服务器:初学者教程

为什么需要 MCP 服务器&#xff1f; 你是否遇到过这样的场景&#xff1a;向 AI 助手&#xff08;比如 GitHub Copilot&#xff09;询问 “北京今天的天气”&#xff0c;得到的回复却是 “我无法访问实时天气数据”&#xff1f; 这是因为大多数 AI 模型本身 “与世隔绝”—— 它…

个人项目介绍:语音识别小助手

一、项目内容 基于STM32F103RCT6制作了一款集语音识别、按键控制、信息显示、温湿度监测等多功能于一体的智能设备&#xff0c;满足多样化的交互需求。 二、个人工作内容 依据项目需求&#xff0c;选定 STM32F103RCT6 单片机、SU-03T语音识别模组、AHT25 温湿度传感器等核心元件…

【Django】-1- 开发项目搭建

一、PDM Django 搭建项目&#x1f447;&#x1f3af; 核心目标用 PDM&#xff08;更现代的 Python 包管理工具&#xff09;&#xff0c;快速创建并管理 Django 项目&#xff08;Web 框架&#xff09;&#xff0c;让开发流程更丝滑✨&#x1f9e9; 分步拆解1. 创建项目用 PDM 初…

c++:设计模式训练

写一个鸟类&#xff1a;有一个多态函数&#xff1a;run 写一个企鹅类&#xff0c;继承自鸟类&#xff1a;重写 run 写一个鸵鸟类&#xff0c;继承自鸟类&#xff0c;重写 run 写一个老鹰类&#xff0c;继承自鸟类&#xff0c;重写run 写一个鸟笼&#xff0c;能够存放 不同的鸟…

配置Mybatis环境

配置Mybatis环境MyBatis是什么配置Mybatis环境MyBatis是什么 MyBatis 一个支持普通 SQL 查询、存储过程以及高级映射的持久层框架。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作&#xff0c;使得开发者可以更专注于 SQL 本身&#xff0c;而不必花费过多…

生产环境中基于Istio的Kubernetes多集群灰度发布架构实战经验分享

生产环境中基于Istio的Kubernetes多集群灰度发布架构实战经验分享 在大规模分布式微服务架构中&#xff0c;如何在多集群环境下平滑、安全地发布新版本&#xff0c;一直是保证高可用、高可靠的关键需求。本文以真实生产环境案例为基础&#xff0c;分享我们团队基于Istio Servic…

Kubernetes(k8s)之认识Pod

01了解Pod Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。 一个Pod封装一个应用容器(也可以有多个容器),存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。它可能由单个容器或多个容器共享组成的资源。 Kubern…

Nginx服务做负载均衡网关

1. 概述 内部Nginx服务器做服务网关&#xff0c;代理后端应用服务&#xff0c;卸载ssl域名证书&#xff0c;将接收的https请求&#xff0c;转发至后端http服务。华为防火墙负责NAT&#xff0c;启用服务器负载均衡功能&#xff0c;将公网虚拟IP端口映射到内部多台Nginx服务器上…

十三、请求响应-请求:日期参数和JSON参数

日期参数代码&#xff1a;日期参数 //日期时间参数RequestMapping("/dataParam")public String dataParam(DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "OK";}结果JSON参…

可信数据库大会现场,TDengine 时序数据库展示核电场景下的高性能与 AI 创新

设备在升级&#xff0c;场站在扩建&#xff0c;但数据系统却还在“跟不上”。这正是许多核电企业在推进数字化转型过程中最真实的感受。高频采集、长周期存储、精度要求高……这些构成了对数据库系统的“炼狱级考验”。在这样一个背景下&#xff0c;国产数据库的能力边界正在被…

ctflearn-POST practice

靶场地址&#xff1a;165.227.106.113/post.php 解题&#xff1a; 一.分析题目 提示&#xff1a; 知道要用POST请求提交表单&#xff0c;看一下源码信息 得到可能需要用post请求方式去提交表单&#xff0c;并且传数据admin和password&#xff0c;这边提供两种方式 方法一&…

FPGA实现OV7670摄像头图像处理至VGA显示器

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;本项目基于FPGA技术&#xff0c;结合OV7670摄像头传感器进行视频捕获&#xff0c;经SDRAM存储&#xff0c;并通过VGA显示器展示。同时&#xff0c;集成了中值滤波算法提高图像清晰度。该项目涉及数字图像处理系…