加载python shell
• 使用如下命令来调用Python shell:
(django_env) [root@localhost mysite]# python manage.py shell
• 使用上述命令而不是简单地键入“python”进入python环境
• 因为manage.py 设置了 DJANGO_SETTINGS_MODULE 环境变量,该环境变量告诉Django导入mysite/settings.py文件的路径
导入模型
• 导入前面编写的模型
>>> from polls.models import Question, Choice
• 查看所有的问题
>>> Question.objects.all()
<QuerySet []>
• 因为还没有创建任何问题,所以返回的是一个空查询集
创建Question
• Question模型中需要时间,可以使用django工具
>>> from django.utils import timezone
• 创建问题
>>> q = Question(question_text="你希望进入哪个公司工作?", pub_date=timezone.now())
>>> q.save()
• 保存这个对象到数据库中。 必须显示地调用save()
访问Question模型
• 一旦创建好了对象,就可以对其进行访问了
>>> q.id
1
>>> q.question_text
'你希望进入哪个公司工作?'
>>> q.pub_date
datetime.datetime(2018, 5, 18, 14, 50, 11, 282269, tzinfo=<UTC>)
修改Question对象
• 通过改变属性来改变字段的值,然后调用save()
>>> q.question_text = "你期待哪个公司给你发offer?"
>>> q.save()
• 查询结果
>>> Question.objects.all()
<QuerySet [<Question: Question object>]>
提供友好实例名称
• <Question object> 完全是这个对象无意义的表示。
接下来修复这个问题:修改polls/models.py
from django.db import models class Question(models.Model): |
• 修改完毕,重新加载
(django_env) [root@localhost mysite]# python manage.py shell
>>> from polls.models import Question, Choice
>>> Question.objects.all()
<QuerySet [<Question: 你期待哪个公司给你发offer?>]>
自定义方法
• 模型虽然与数据库具有映射关系,但是它也可以像普通的类一样进行方法的创建