0

0

如何在 Django 中通过表单向服务器发送数据

聖光之護

聖光之護

发布时间:2026-02-19 10:25:00

|

611人浏览过

|

来源于php中文网

原创

如何在 Django 中通过表单向服务器发送数据

本文介绍在 django 中使用 html 表单(get 方法)安全、规范地将用户输入(如文本字段)提交至后端视图,并在视图中获取和处理该数据,适用于聊天界面、搜索框等轻量交互场景。

本文介绍在 django 中使用 html 表单(get 方法)安全、规范地将用户输入(如文本字段)提交至后端视图,并在视图中获取和处理该数据,适用于聊天界面、搜索框等轻量交互场景。

在 Django Web 开发中,前端向后端传递用户输入(例如聊天消息、搜索关键词)最基础且推荐的方式是使用标准 HTML

表单配合 HTTP 请求方法。虽然现代应用常结合 AJAX 或 POST 实现更丰富的交互,但理解并正确实现表单提交是构建可靠通信的基石——尤其对于初学者或需快速验证逻辑的原型(如简易 ChatGPT 风格对话界面)。

✅ 正确实现步骤

1. 前端:编写语义化表单(GET 方法)

确保表单 method="get" 并设置 action 指向对应 URL 路径。为便于后端识别, 必须设置 name 属性(如 name="message"),其值将作为查询参数键名:

<!-- 在 your_template.html 中 -->
<form action="{% url 'chat_submit' %}" method="get">
  <label for="user_message">请输入消息:</label>
  <input 
    type="text" 
    id="user_message" 
    name="message" 
    placeholder="例如:你好,今天天气如何?"
    required
  />
  <button type="submit">发送</button>
</form>

? 说明:使用 {% url 'chat_submit' %} 替代硬编码路径,可提升路由可维护性(需在 urls.py 中配置命名 URL)。

2. 后端:定义 URL 路由与视图逻辑

在 urls.py 中注册路径并关联命名:

HostDirector
HostDirector

含Whois查询,可以检查全世界任何后缀名的域名,可以通过订购域名,主机和其他服务,并通过Worldpay, PayPal, Invoice 或你自己的安全服务器支付费用,客户可以察看他们的产品,购买更多的服务,更新产品,请求技术支持,察看在线知识库或最新新闻,可以管理客户的详细资料,并通过email向你的客户发送产品到期或即将到期的清单

下载
# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('chat/', views.chat_submit, name='chat_submit'),
    # 其他路径...
]

在 views.py 中接收并处理 GET 参数:

# views.py
from django.shortcuts import render
from django.http import HttpResponse

def chat_submit(request):
    # 安全获取 GET 参数,提供默认值避免 KeyError
    user_input = request.GET.get('message', '').strip()

    # 示例:简单回显(实际中可调用 LLM API、存入数据库等)
    response_text = f"收到:{user_input}" if user_input else "请输入有效内容"

    # 将结果传回模板(支持后续渲染历史消息列表)
    context = {
        'last_message': response_text,
        'history': [response_text]  # 可扩展为 Session 或数据库存储
    }
    return render(request, 'chat.html', context)

3. 模板中渲染响应(可选增强)

利用 Django 模板语法安全展示返回内容,并支持循环渲染消息历史:

<!-- chat.html -->
{% if last_message %}
  <div class="response">
    <strong>Bot:</strong>{{ last_message }}
  </div>
{% endif %}

<!-- 渲染历史消息(示例) -->
{% if history %}
  <ul class="chat-history">
    {% for msg in history %}
      <li>{{ msg }}</li>
    {% endfor %}
  </ul>
{% endif %}

⚠️ 关键注意事项

  • 安全性优先:GET 请求会将参数暴露在 URL 和浏览器历史中,切勿用于传输敏感信息(如密码、token);涉及隐私或大文本应改用 method="post" 并启用 CSRF 保护。
  • 空值与清洗:始终使用 .get(key, default) 获取参数,并对用户输入执行 .strip() 和必要校验(如长度、字符集),防止空提交或 XSS 风险。
  • URL 设计合理性:GET 适合幂等操作(如搜索、过滤),若需修改服务端状态(如保存聊天记录),应切换为 POST 并配合 @require_http_methods(["POST"]) 装饰器。
  • 调试技巧:开发时可在视图中临时打印 print(request.GET) 查看完整参数字典,确认键名是否匹配。

掌握这一基础流程后,你即可稳定支撑聊天类应用的首条消息通路。后续可平滑升级为 AJAX 异步提交、WebSocket 实时通信,或集成 OpenAI API 实现真实 AI 回复——而所有进阶方案,都建立在清晰理解“请求-响应”这一核心范式之上。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python Web 框架 Django 深度开发
Python Web 框架 Django 深度开发

本专题系统讲解 Python Django 框架的核心功能与进阶开发技巧,包括 Django 项目结构、数据库模型与迁移、视图与模板渲染、表单与认证管理、RESTful API 开发、Django 中间件与缓存优化、部署与性能调优。通过实战案例,帮助学习者掌握 使用 Django 快速构建功能全面的 Web 应用与全栈开发能力。

73

2026.02.04

ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

164

2023.06.14

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

166

2023.08.31

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

119

2023.11.15

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

245

2024.09.24

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

12

2026.02.03

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6400

2023.09.14

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

561

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 5.3万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号