📜  将数据从 html 表单存储到数据库 django - Html (1)

📅  最后修改于: 2023-12-03 15:09:36.671000             🧑  作者: Mango

将数据从 HTML 表单存储到数据库 Django - HTML

简介

在 Django 中,我们可以通过 HTML 表单来获取用户输入的数据,并存储到数据库中。本文将简要介绍如何使用 Django 的表单和模型来实现这个过程。

步骤
创建 Django 应用程序

首先,我们需要创建一个 Django 应用程序。在命令行中输入以下命令:

python manage.py startapp myapp

这将创建一个名为 myapp 的新应用程序。

创建模型

在 myapp/models.py 文件中,我们可以创建一个模型来定义表单数据应该如何存储在数据库中。以下是一个简单的例子:

from django.db import models

class MyModel(models.Model):
    field1 = models.CharField(max_length=100)
    field2 = models.CharField(max_length=100)

在这个例子中,我们定义了一个名为 MyModel 的模型,它有两个 CharField 字段:field1 和 field2。这些字段定义了我们想要从表单中收集的数据。

创建表单

在 myapp/forms.py 文件中,我们可以创建一个表单来获取用户的输入数据。以下是一个简单的例子:

from django import forms
from .models import MyModel

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = ('field1', 'field2',)

在这个例子中,我们定义了一个名为 MyForm 的表单,它继承自 Django 的 ModelForm。我们还指定了模型为 MyModel,并指定了我们想要从表单中收集的字段。

创建视图

在 myapp/views.py 文件中,我们可以创建一个视图来处理表单数据。以下是一个简单的例子:

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = MyForm()

    return render(request, 'my_template.html', {'form': form})

在这个例子中,我们创建了一个名为 my_view 的视图。当用户提交表单时,我们将表单数据保存到数据库中。如果请求方法是 GET,则我们显示一个空表单。

创建模板

在 myapp/templates/my_template.html 文件中,我们可以编写一个模板来呈现表单。以下是一个简单的例子:

{% extends 'base.html' %}

{% block content %}
<h1>My Form</h1>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Submit</button>
</form>
{% endblock %}

在这个例子中,我们使用 Django 的模板语言来呈现表单。我们还添加了一个 CSRF 令牌,以防止跨站请求伪造攻击。

结论

现在,我们已经完成了将 HTML 表单数据保存到数据库的过程。我们使用 Django 的模型来定义数据库结构,使用表单来收集用户的输入,使用视图来处理输入数据,并使用模板来呈现表单。这是一个非常基本的实现,但你可以根据需要进行更改和扩展。