交互式shell
1. 启动shell
- python manage.py shell
终端输入命令
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.11.1 -- An enhanced Interactive Python. Type '?' for help.
2. 操作
In [1]: from boards.models import Board
In [2]: board = Board(name='Tdq', description='She is a perfect woman.')
In [3]: board.save() # 保存到数据库
In [4]: board.id
Out[4]: 1
In [5]: board.name
Out[5]: 'Tdq'
In [6]: board.description
Out[6]: 'She is a perfect woman.'
(1)board是一个Board板块的实例
(2)board.save():保存到数据库
3. 模型管理器
- 每一个Django模型都有一个模型管理器,通过objects访问这个管理器,用于数据库操作
- 注意是模型的操作
In [7]: board = Board.object.create(name='Yzy', description='He is a handsome man.')
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-7-4a7cb2ed0f36> in <module>
----> 1 board = Board.object.create(name='Yzy', description='He is a handsome man.')
AttributeError: type object 'Board' has no attribute 'object'
In [8]: board = Board.objects.create(name='Yzy', description='He is a handsome man.')
In [9]: board.id
Out[9]: 4
In [10]: board.name
Out[10]: 'Yzy'
In [11]: board.description
Out[11]: 'He is a handsome man.'
In [12]: Board.objects.all()
Out[12]: <QuerySet [<Board: Django>, <Board: YZY>, <Board: Tdq>, <Board: Yzy>]>
In [13]: boards_list = Board.objects.all()
In [14]: for board in boards_list:
...: print(board.name)
...:
Django
YZY
Tdq
Yzy
In [15]: django_board = Board.objects.get(id=1)
In [16]: django_board.name
Out[16]: 'Django'
In [17]: board = Board.objects.get(id=3)
In [18]: board.description
Out[18]: 'She is a perfect woman.'
4. 删除数据库保存的元素
for i in Board.objects.all():
...: i.delete()
...:
In [41]: Board.objects.all()
Out[41]: <QuerySet []>
5. 退出shell
- ctrl+D