📅  最后修改于: 2023-12-03 15:09:36.671000             🧑  作者: Mango
在 Django 中,我们可以通过 HTML 表单来获取用户输入的数据,并存储到数据库中。本文将简要介绍如何使用 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 的模型来定义数据库结构,使用表单来收集用户的输入,使用视图来处理输入数据,并使用模板来呈现表单。这是一个非常基本的实现,但你可以根据需要进行更改和扩展。