Django获取HTML表单数据:从配置到解决403错误的完整流程

方予
方予
发布时间:2026-10-13| 4人浏览过
原创

本文详解Django中如何接收HTML页面提交的表单数据。通过配置urls.py路由与views.py视图函数,演示获取POST参数的具体代码。重点解决提交时常见的403 Forbidden错误,需在form标签内添加{% csrf_token %}。完整流程涵盖模板编写、路由映射、视图逻辑及服务启动验证,帮助开发者快速实现数据交互。

本文主要介绍在Django框架中,如何从HTML页面获取用户通过表单提交的数据。

创建HTML表单页面

第一步,创建一个自定义的HTML网页用于接收用户输入。

文件命名为login.html。


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>test</title>
</head>
<body>
  <form method="post" action="{% url 'check' %}"> 
    <input type="text" name="name" placeholder="your username"><br>
    <input type="password" name="pwd" placeholder="your password"><br>
    <input type="submit" value="提交"><br>
  </form>
</body>
</html>

在form表单中,action{%url ‘check'%} 属性对应的值需要与urls.py文件中定义的name参数保持一致。

配置URL路由与视图函数

第二步,配置urls.py文件以定义URL路由规则。


urlpatterns = [
  path('reg/',views.reg,name='check'),
  path('',views.login),
]

第三步,在views.py文件中编写处理逻辑。


def login(request):
  return render(request,'login.html')
def reg(request):
  if request.method == 'POST':
    name=request.POST.get('name')
    pwd=request.POST.get('pwd')
  print(name,pwd)
  return render(request,'login.html')

服务启动与数据提交测试

第四步,启动Django服务,访问主页localhost:8000,输入用户名和密码后点击提交按钮。

此时,页面可能会返回403 Forbidden错误。

解决403错误与CSRF配置

为了解决这个问题,需要在login.html文件的form表单内部添加特定的安全令牌代码。


{%csrf_token%}

  <form method="post" action="{% url 'check' %}">
    {% csrf_token %}
    <input type="text" name="name" placeholder="your username"><br>
    <input type="password" name="pwd" placeholder="your password"><br>
    <input type="submit" value="提交"><br>
  </form>

保存修改后重启服务,再次尝试输入用户名和密码进行提交。

成功提交后,即可在服务器端获取到页面输入的信息。

以上即为Django从HTML页面表单获取输入数据的完整实例,希望能为读者提供参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。