📜  在 db django 中添加行 - Python (1)

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

在 Django 中添加行

在 Django 中添加行通常意味着向数据库中添加新记录或对现有记录进行更新。Django 提供了许多方法来执行这些操作,下面将介绍其中的一些方法。

基本的添加行方法

要向数据库中添加一行,第一步是创建一个 Django 模型,比如:

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=200)
    pub_date = models.DateField()

然后,使用以下代码将新记录添加到数据库:

book = Book(title="Django for Beginners", author="William Vincent", pub_date="2021-01-01")
book.save()

这将创建一个新的书籍记录,并将其保存到数据库中。

使用表单添加行

通常情况下,我们会通过用户提交表单的方式向数据库添加新记录。Django 提供了内置的表单功能,可以轻松地创建表单并将其绑定到模型上。

首先,您需要创建一个表单类,定义它所需的表单字段:

from django import forms
from .models import Book

class BookForm(forms.ModelForm):
    class Meta:
        model = Book
        fields = ['title', 'author', 'pub_date']

然后,在视图函数中使用这个表单类,并在 POST 方法中处理它的提交:

def add_book(request):
    if request.method == 'POST':
        form = BookForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = BookForm()

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

最后,您需要创建一个模板来显示表单和处理表单提交:

<form method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Add Book</button>
</form>

现在,用户可以通过表单向数据库添加新书籍了。

使用 Django shell 添加行

如果您正在开发过程中,并且需要手动添加一些测试数据或执行一些故障排除操作,可以使用 Django shell 来添加新记录。

要进入 Django shell,请在终端中运行以下命令:

python manage.py shell

然后,您可以像下面这样创建并保存新对象:

from myapp.models import Book

book = Book(title="The Great Gatsby", author="F. Scott Fitzgerald", pub_date="1925-04-10")
book.save()
使用命令行工具添加行

如果您不想使用 Django shell,可以使用命令行工具来添加行。Django 包含了一个名为 django-admin 的命令行实用程序,您可以在其中使用 shell 命令来操作数据库。

以下是向数据库添加一行的命令示例:

python manage.py shell -c "from myapp.models import Book; Book(title='The Old Man and the Sea', author='Ernest Hemingway', pub_date='1952-09-01').save()"

这将向数据库中添加一本新的书籍。

注意:在上述代码中,myapp 是您的应用程序名称,Book 是您的模型名称。

结论

通过 Django,您可以轻松地向数据库添加新行,无论是手动添加还是使用表单或命令行工具。当然,这只是 Django 数据库操作中的一小部分,学习更多请参考 Django 的官方文档。