Django 表单数据存储与获取
Django 表单数据的存储与获取主要涉及到两个方面:一个是前端表单的提交与接收,另一个是后端对表单数据的处理与存储。
- 前端表单的提交与接收
在前端 html 中,我们可以通过 form 元素来创建表单,例如:
<form method="post" action="{% url 'submit_form' %}"> {% csrf_token %} <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="Submit"> </form>
在这个表单中,我们指定了表单的提交方式为 POST,提交的目标地址为 submit_form。其中 {% csrf_token %} 是用于防止跨站请求伪造(CSRF)攻击的安全特性,一定要加上。表单中包含了两个输入框,分别是 username 和 password。
接下来,我们需要在后端视图函数中接收这些表单数据:
from django.shortcuts import render from django.http import HttpResponse def submit_form(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') # TODO: 处理表单数据 return HttpResponse('提交成功!') else: return render(request, 'form.html')
这里我们首先判断了请求方式是否为 POST,然后通过 request.POST.get() 方法获取表单中的数据。需要注意的是,表单中的输入框的 name 值与这里的参数名必须一致。
- 后端对表单数据的处理与存储
在视图函数中获取到表单数据后,我们可以对其进行处理并存储到数据库中。这里以 Django 自带的 ORM 框架为例,演示如何将表单数据存储到数据库中。
首先,我们需要定义一个模型类:
from django.db import models class User(models.Model): username = models.CharField(max_length=50) password = models.CharField(max_length=50)
这个模型类表示一个 User 对象,该对象包含了用户名和密码两个属性。其中,CharField 表示一个字符串类型字段,max_length 表示这个字段最大的长度限制。
下一步,我们需要在视图函数中创建一个 User 对象:
from django.shortcuts import render from django.http import HttpResponse from .models import User def submit_form(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user = User(username=username, password=password) user.save() return HttpResponse('提交成功!') else: return render(request, 'form.html')
在这个视图函数中,我们通过 request.POST.get() 方法获取表单数据,然后创建一个 User 对象,将表单数据存储到数据库中。
最后,我们可以在其他视图函数中查询 User 对象,获取表单数据:
def show_users(request): users = User.objects.all() for user in users: print(user.username, user.password) return HttpResponse('查询成功!')
在这个视图函数中,我们通过 User.objects.all() 查询了所有的 User 对象,并打印出它们的用户名和密码。
以上就是 Django 表单数据存储与获取的详细介绍,希望能对你有所帮助。
相关文章