day61 Pyhton 框架Django 04

内容回顾

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()   ——》 当前书籍所关联的所有作者对象

 

posted @ 2019-01-18 21:56  Python张梦书  阅读(230)  评论(0编辑  收藏  举报