玩一下API
现在,让我们进入python的交互模式吧,来玩一下Django提供的API。为了激活python的shell,使用下面的命令:
$ python manage.py shell
我们之所以使用这个命令,而不是简单地输入python
,是因为manage.py
设置了DJANGO_SETTING_MODULE
这个环境变量,这样的话,就能告诉Django你的mysite/settings.py
这个文件路径。
当然,如果你不想使用manage.py
,没问题。只需要将mystic.setting
设置成DJANGO_SETTING_MODULE
这个环境变量即可,开始一个普通的python shell,然后设置Django:
>>>import django
>>>django.setup()
如果这样做产生AttributeError
错误的话,你可能使用了与本教材不搭配的Django版本。
你必须在与manage.py
相同的目录下运行python
这个目录。
一旦你在shell中,你就可以探索数据库的API。
>>> from polls.models import Question,Choice
#导入我们刚刚写的模型类
>>> Question.objects.all()
[]
#目前系统中还没有questions模型对象
>>> from django.utils import timezone
>>> q=Question(question_text="what's new?",pub_date=timezone.now())
#创建一个新的Question对象
>>> q.save()
#将这个对象保存到数据库中,你必须显示地调用`save()`这个方法
>>> q.id
1
>>> q.question_text
"what's new?"
>>> q.pub_date
datetime.datetime(2015, 8, 28, 2, 26, 38, 985952, tzinfo=<UTC>)
#通过python的属性来获取模型字段值
>>> q.question_text="what's up?"
>#通过改变属性来改变值
>>> q.save()
>>> Question.objects.all()
[<Question: Question object>]
#`objects.all()`能够列出数据库中所有的question对象