Django数据库表中多对多关系ROM操作
-
浏览器发送请求
-
Django接收到请求
-
在urls.py中匹配url,找到对应的函数
-
执行函数(views.py) -- 业务逻辑
-
得到函数的返回值返回给浏览器
-
2.发请求的方式:
-
在浏览器上输入地址,回车 ——》 get
-
点击a标签 ——》 get
-
form表单 默认是 get请求
-
form表单 method = 'post' ——》 post
-
3.返回的响应
-
HttpResponse('字符串') ——》 字符串
-
render(request,'HTML文件名',{key:value}) ——》 一个完整的HTML页面. redirect('跳转的地址') ——》重定向 Location:地址
-
4.外键
表示多对一的关系 book publisher
class Book(models.Model):
title = models.CharField(max_length=32, unique=True) # 书籍的名称
publisher = models.ForeignKey('Publisher', on_delete=models.CASCADE) # 关联了出版社
查询:
book_obj_list = models.Book.objects.all()
for book in book_obj_list :
book.id ——》主键
book.title ——》标题
book.publisher ——》关联的出版社对象
book.punlisher_id ——》 本张表中存的出版社的ID
book.publisher.name ——》出版社的名称
创建:
models.Book.objects.create(title='xxxxx',publisher=publisher_obj ) # 使用对象
models.Book.objects.create(title='xxxxx',publisher_id=publisher_obj.id ) # 使用对象id
删除:
models.Book.objects.get(id=1).delete()
models.Book.objects.filter(id=1).delete()
编辑:
book_obj.title = 'xxxx'
book_obj.publisher = publisher _obj
book_obj.publisher_id = publisher _obj.id
book_obj.save()
1.多对多的关系
-
model
class Author(models.Model):
name = models.CharField(max_length=32, unique=True) # 作者的名字
books = models.ManyToManyField('Book') # 表示作者和书籍 多对多的关系
2.作者的增删改查
-
查询
-
新增
-
删除、编辑见代码
3.多对多补充
自己创建第三表,还要使用管理对象