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/
。
结果: