Django Forms表单创建与数据入库实战解析

阿橙
阿橙
发布时间:2026-10-12| 2人浏览过
原创

本文详细解析Django框架中Forms模块的实际应用,涵盖HTML模板编写、URL路由配置及视图函数逻辑。通过具体代码示例,展示如何利用Form类接收POST请求数据并验证,最终将用户输入保存至数据库。适合希望掌握Django表单处理流程的开发者参考。

本文主要探讨Django框架中Forms模块的具体使用方法,内容如下。

首先,需要创建名为do.html的模板文件。

{% extends 'base.html' %} 
 
{% block mainbody %} 
   
  <form action="/app1/do/" method="post"> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Submit"> 
  </form> 
 
{% for item in student %} 
  <p>{{ item.id }}, {{ item }}</p> 
{% endfor %} 
 
{% endblock %} 

接着,在项目的urls.py文件中添加对应的URL路径配置。

url(r'^do/', 'app1.views.do'),

随后,在views.py文件中定义处理该路径的do视图函数。

from django.shortcuts import render 
from django.core.context_processors import csrf 
from app1.models import Student 
from django import forms 
 
def do(request): 
  context = {} 
  context.update(csrf(request)) 
  if request.POST: 
    form = StudnetForm(request.POST) 
    if form.is_valid(): 
      name = form.cleaned_data['name'] 
      student = Student(name = name) 
      student.save() 
  form = StudnetForm() 
  context = {} 
  context.update(csrf(request)) 
  student_list = Student.objects.all() 
  context['student'] = student_list 
  context['form'] = form  
  return render(request, 'do.html', context) 

此时,数据库中已存在四条预设数据。

在浏览器中访问地址 http://localhost:8000/app1/do/。

页面加载后可以看到初始状态。

接下来,在表单中输入Name字段的内容并提交。

提交后,可以看到新数据已成功添加至数据库中。

若需定义多个Form,只需确保View层与Template模板中的对应关系一致即可。关于Form更详细的使用方法,建议查阅Form的官方API文档,访问地址为:https://docs.djangoproject.com/en/1.8/ref/forms/api/。

总结

总体而言,Django是一个性能优越且易于使用的Web框架,目前许多企业在招聘Python开发人员时,也要求候选人具备Django的使用技能。

以上即为本文关于Django中Forms使用的完整代码解析,希望能对大家有所帮助。感兴趣的朋友可继续浏览本站其他相关专题,如有不足之处,欢迎留言指正。感谢各位读者对本站的支持!

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

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 算法库。