Django 添加 Members
添加记录
Members 表是空的,我们应该向其中添加一些成员。
在接下来的章节中,您将学习如何创建一个用户界面来处理 CRUD 操作(创建、读取、更新、删除),但是现在,让我们直接在 Python 解释器(Python shell)中编写 Python 代码,并在非用户界面下向数据库中添加一些成员。
要打开 Python shell,请输入以下命令:
现在我们在 shell 中,结果应该是这样的:
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
在底部,在三个 >>>
之后写下以下内容:
点击 [enter] 并写下此项查看空的成员表:
这将为您提供一个空的 QuerySet 对象,如下所示:
QuerySet 是数据库中的数据集合。
在 Django QuerySet 一章中阅读更多关于 QuerySet 的信息。
通过执行这两行,向表中添加一条记录:
执行此命令以查看 Members 表是否有成员:
结果会是这样:
添加多条记录
可以通过列出 Members
对象来添加多条记录,并对每个条目执行 .save()
:
>>> 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 个成员:
{'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 环境中。
要在网页中查看结果,我们可以为此特定任务创建 视图。
在 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 对象中的所有项,以生成包含所有 firstname 值的字符串。
- 将字符串作为输出返回到浏览器。
浏览器中查看结果。如果仍在 Python shell 中,请编写以下命令以退出 shell:
导航到 /myworld/
文件夹,然后键入该选项以启动服务器:
在 window 浏览器的地址栏输入 127.0.0.1:8000/members/
。
结果为: