一、通过django的model查询数据库中记录,逻辑写在views中
1、一旦创建了数据模型,Django就会自动为您提供一个数据库抽象API,使您可以创建,检索,更新和删除对象
有关详细的·model操作可以查询对应版本的官方文档
参考链接:http://www.h5w3.com/doc/django-docs-1.9-en/topics/db/queries.html
all_messages是所有数据库objects,我们像操作类一样操作数据库的数据,我们对all_messages进行遍历,并取出数据库中的姓名字段的值
UserMessage.object是数据表的管理器manage,通过这个管理器可以构建QuerySet,是数据库中数据的一个集合
参考:
2、打断点、调试
调式之前先添加数据
在哪一行设置断点,直接在行的前面点击一下就可以了
点击Run–>Stop,再进行Debug,打开浏览器输入网址刷新
调试的结果可以看到all_messages是UserMessage object
鼠标放在all_messages这行上也能看到
按F6运行下一行代码,也就是单步调试,这都是Eclispse快捷键
鼠标停在message上
点击图中message前面的加号,可以看到之前在数据库中的数据
按F8运行完整个程序,在Console下面就输出了姓名bob
以上是查询的一个用法,用到了all()方法,通过对model class的操作UserMessage.object得到数据表的管理器manage,通过all()方法获得数据库中所有的objects
3、其他方法
取特定的记录,可以用filter(),结果是新的QuerySet
取姓名是bob的数据
取姓名是bob并且地址是北京的数据,和的关系在这里直接在括号中用逗号隔开就行
取姓名是bob并且地址是南京的数据,没有符合的数据QuerySet就为空
更多的方法可以参考: QuerySet API Reference
http://www.h5w3.com/doc/django-docs-1.9-en/ref/models/querysets.html#queryser-api
二、通过model添加数据到数据库中
先创造对象,再添加属性即字段,最后保存到数据库,都是对类的的操作,打断点,按F6单步调试,按F8运行完整个程序
运行完成后,去数据库刷新查看,数据就这样保存到了数据库中
三、通过留言板添加留言,并保存到数据库
1、当在留言板填好信息点击提交的时候,数据如何传递到后端并保存到数据库?
首先配置好点击跳转的url
填好信息,点击提交按钮
提交后会出现CSRF的限制,这是安全机制
CSRF解决办法,在form表单中添加{% csrf_token %}
2、数据被传哪去了??
进入·views.py,打断点,填好前端表单页面,点击提交
在views中,调试可以看到数据被提交到request中了,点击POST可以查看提交到request中的信息,以键值对的形式表示,有关POST和GET等方法可参考计算机网络知识HTTP协议中与服务器交互的方法
图中红色方框的key值与templates中message_form中的name值相对应,由前端模板中name提交到后端request
3、数据在request中的POST中,接下来取出数据保存到数据库
在views中写好保存逻辑,填好数据,点击提交,进行单步调试,如图
在数据库中查看,多了一条记录,因为之前添加过一条数据手动删除后,再添加数据id变成了3
四、删除数据库记录
写删除逻辑,运行项目,前端刷新,再去数据库查看记录已删除