Django 表单数据存储与获取

2023-04-11 00:00:00 数据存储 获取 表单

Django 表单数据的存储与获取主要涉及到两个方面:一个是前端表单的提交与接收,另一个是后端对表单数据的处理与存储。

  1. 前端表单的提交与接收

在前端 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 值与这里的参数名必须一致。

  1. 后端对表单数据的处理与存储

在视图函数中获取到表单数据后,我们可以对其进行处理并存储到数据库中。这里以 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 表单数据存储与获取的详细介绍,希望能对你有所帮助。

相关文章