• 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()   ——》 当前书籍所关联的所有作者对象
  • 相关阅读:
    HtmlEncode 和 HtmlDecode
    Visual Studio .Net 的一些小技巧(2)
    Array和ArrayList的区别
    c#中 ?? 是什么意思?
    带有图片预览功能的上传表单 上传预览
    Js实现Repeater全选/反选 功能 终极解决方案
    处理URL重写后postback重写失效的问题 .browser文件
    在TreeView中使用CheckBox(c#)
    SQL操作全集
    智能仓库管理系统方案(一)
  • 原文地址:https://www.cnblogs.com/pythonz/p/10289917.html
Copyright © 2020-2023  润新知