Django数据库表中多对多关系ROM操作

1.Django处理web请求的流程:
  1. 浏览器发送请求

    1. Django接收到请求

    2. 在urls.py中匹配url,找到对应的函数

    3. 执行函数(views.py)   -- 业务逻辑

    4. 得到函数的返回值返回给浏览器

2.发请求的方式:
  1. 在浏览器上输入地址,回车  ——》  get

    1. 点击a标签   ——》 get

    2. form表单 默认是 get请求

    3. form表单 method = 'post'    ——》 post

3.返回的响应
  1. HttpResponse('字符串')     ——》  字符串

    1. 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.多对多的关系
  1. model


    class Author(models.Model):
       name = models.CharField(max_length=32, unique=True)  # 作者的名字
       books = models.ManyToManyField('Book')  # 表示作者和书籍 多对多的关系

 

 

 

 

 

2.作者的增删改查
  1. 查询

 

  1. 新增

 

  1. 删除、编辑见代码

 

 

3.多对多补充

 

自己创建第三表,还要使用管理对象

 

转载于:https://www.cnblogs.com/PythonMrChu/p/10065640.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值