Django中ORM对数据库的增删改查
Django中ORM对数据库数据的增删改查
-
模板语言
-
{% for line in press %}
-
{% if 条件 %}
-
{% if publisher == book.publisher %} <option selected value="{{ publisher.id }}">{{ publisher.name }}</option> {% else %} <option value="{{ publisher.id }}">{{ publisher.name }}</option> {% endif %}
-
-
什么是ORM
- ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查
-
Django中连接数据库和创建表(见上个笔记)
-
单表的增删改查
-
创建单表
-
增
-
UserInfo.object.create(name="lin") UserInfo.object.create(**{"name":"lin"})
-
-
删
-
在HTTP中的URL中添加参数
-
UserInfo.object.filter(id=1).delete() #删除在UserInfo表中筛选出id为1的对象
-
在Django中获取URL中的参数
-
request.GET #获取一个类似于字典 request.GET.get("id") #取值
-
-
-
改对数据库进行修改时需要对数据进行保存
-
obj = UserInfo.objects.filter(id=3)[0] obj.name = "alex" #这里改只是在Python中将数据进行更改 obj.save() #将数据库中的数据进行更改, #第二种方法 UserInfo.objects.filter(id=3).update(name="alex") #直接设定对应属性,
-
-
查
-
一对多的增删改查
-
注意在Django2.0以上的版本,外键需要手动设置级联操作
-
publisher = models.ForeignKey(to='Publisher', on_delete=models.CASCADE) # ORM自动刚给外键字段加_id
-
-
关联表
-
-
增
-
需要注意参数(关联外键是,
-
Book.objects.create(title=new_title,publisher=Publisher.objects.get(id=publisher_id)) Book.objects.create(title=new_title, publisher_id=publisher_id)
-
-
删
-
Book.objects.get(id=id).delete()
-
-
改 注意改完需要保存
-
book_obj.name = "新的值" #book_obj为对象 book_obj.publisher_id = "新id" book_obj.save()
-
-
查
-
-
多对多查询
-
对html错误的提示