内容回顾
1.django处理请求的流程:
1. 在浏览器的地址栏输入地址,回车发get请求;
2. wsgi模块接收请求;
3. 在urls.py文件中匹配地址,找到对应的函数;
4. 执行函数,返回响应。
2.发请求的方式:
1. 输入地址   ——  GET
2. form  默认是get
3. form 发post请求
4. a标签   get  
3.函数的返回值
HttpResponse('显示的内容')     —— 》   字符串  
render(request,'HTML文件名', { 'k1': v1  } )     —— 》 完整的HTML页面
redirect('要跳转的地址')    ——》 重定向    Location: ‘'要跳转的地址’
4.外键
表示多对一的关系
    for book in Book.objects.all():   # 所有的书籍对象
        book.id    # 主键
        book.name  # 名称
        book.pub   #  书籍关联的出版社对象
        book.pub_id   # book表中对应出版社的ID
        
    # 增加
    Book.objects.create(name='xxxx',pub_id='111')
    Book.objects.create(name='xxxx',pub=pub_obj)
    # 删除
    Book.objects.get(pk=1).delete()
    Book.objects.filter(pk=1).delete()
    # 编辑
    book_obj.name = 'new name'
    book_obj.pub_id = '11'
    book_obj.pub =pub_obj
    book_obj.save()
5.模板的语法
{%  if xxx == xxx   %}
    xxxx
{% elif 条件 %}
    www
{% else %}
    xxx
{% endif %}
今日内容
多对多的关系
作者的增删改查
model:
    # 作者
    class Author(models.Model):
        name = models.CharField(max_length=32, unique=True)
        books = models.ManyToManyField('Book')
展示:
    for author in all_authors:
        print(author)
        print(author.pk)
        print(author.name)
        print(author.books, type(author.books))  # 多对多关系管理对象
        print(author.books.all(), type(author.books.all()))  # 多对多关系管理对象
        print('*' * 30)
增加:
    name = request.POST.get('name')
    books_id = request.POST.getlist('books_id')
    
    # 插入到数据库中
    author_obj = models.Author.objects.create(name=name)
    # 绑定书籍和作者的关系
    author_obj.books.set(books_id)
正向查询:
多对多字段在作者表中:
作者 ——》 书籍
author_obj.books    ——》 多对多的管理对象
author_obj.books.all()   ——》 当前作者所关联的所有书籍对象
反向查询:
书籍 ——》 作者
book_obj.author_set  ——》 多对多的管理对象
book_obj.author_set  .all()   ——》 当前书籍所关联的所有作者对象