Django 添加成员

添加记录

Members 表是空的,我们应该向它添加一些成员。

在接下来的章节中,您将学习如何创建一个处理 CRUD 操作(创建、读取、更新、删除)的用户界面,但现在,让我们直接在 Python 解释器(Python shell)中编写 Python 代码 并在我们的数据库中添加一些成员,无需用户界面。

要打开 Python shell,请输入以下命令:

py manage.py shell

现在我们在shell中,结果应该是这样的:

Python 3.9.2 (tags/v3.9.2:1a79785, Feb 19 2021, 13:44:55) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

在底部,三个>>>之后写下:

>>> from members.models import Members

点击 [enter] 并写下这个来查看空的 Members 表:

>>> Members.objects.all()

这应该给你一个空的 QuerySet 对象,像这样:

<QuerySet []>

QuerySet 是数据库中数据的集合。

Django QuerySet 章节中了解有关 QuerySet 的更多信息。

通过执行这两行将记录添加到表中:

>>> member = Members(firstname='Emil', lastname='Refsnes')
>>> member.save()

执行此命令查看Members表是否有成员:

>>> Members.objects.all().values()

希望结果如下所示:

<QuerySet [{'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes'}]>

添加多条记录

可以通过Members对象列表添加多条记录,并执行.save() 在每个条目上:

>>> member1 = Members(firstname='Tobias', lastname='Refsnes')
>>> member2 = Members(firstname='Linus', lastname='Refsnes')
>>> member3 = Members(firstname='Lene', lastname='Refsnes')
>>> member4 = Members(firstname='Stale', lastname='Refsnes')
>>> members_list = [member1, member2, member3, member4]
>>> for x in members_list:
>>>   x.save()

现在Members表中有 5 个成员:

>>> Members.objects.all().values()
<QuerySet [{'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes'},
{'id': 2, 'firstname': 'Tobias', 'lastname': 'Refsnes'}, {'id': 3, 'firstname': 'Linus', 'lastname': 'Refsnes'}, {'id': 4, 'firstname': 'Lene', 'lastname': 'Refsnes'}, {'id': 5, 'firstname': 'Stale', 'lastname': 'Refsnes'}]>

在浏览器中查看

我们希望在网页中查看结果,而不是在 Python shell 环境中。

要在网页中查看结果,我们可以为此特定任务创建一个view 视图

members 应用程序中,打开 views.py 文件,如果您已按照前面的章节进行操作 在本教程中,它应该如下所示:

members/views.py:

from django.http import HttpResponse
from django.template import loader

def index(request):
  template = loader.get_template('myfirst.html')
  HttpResponse(template.render())

views.py 文件中的内容改为如下所示:

members/views.py:

from django.http import HttpResponse
from django.template import loader
from .models import Members

def index(request):
  mymembers = Members.objects.all().values()
  output = ""
  for x in mymembers:
    output += x["firstname"]
  return HttpResponse(output)

正如您在第 3 行中看到的,Members 模型被导入,index 视图执行以下操作:

  • 使用 Members 模型的所有值创建一个 mymembers 对象。
  • 遍历 mymembers 对象中的所有项目以构建包含所有名字值的字符串。
  • 将字符串作为输出返回给浏览器。

在浏览器中查看结果。 如果您仍在 Python shell 中,请编写以下命令退出 shell:

>>> quit()

导航到 /myworld/ 文件夹并键入以下内容以启动服务器:

py manage.py runserver

在浏览器窗口的地址栏中输入 127.0.0.1:8000/members/

结果: