14 Jun 18 Django

偶尔善良 提交于 2020-11-21 04:05:40

14 Jun 18

一、内容回顾

1. URL写法:127.0.0.1:8000/edit_publisher/?id=1&name=zhangzhao&age=16

   a. 用&连接多个条件

   b. ?前的/可以省略

   c. URL中不能有空格

 

2. form表单中的action如果传空,默认返回当前页面。

   应用:对一些跳转页面,可以手动拼接id等信息,亦可传空,默认跳转

 

3. 以编辑书籍为例, 如果method是POST执行一段代码,如果method不是POST执行另一段代码。

   通过连接直接跳转改路径/页面触发的不是POST方法;当在编辑书籍页面提交form表单触发的是POST方法。

 

二、今日内容

1. 删除、编辑书籍信息

 

2. Django的模板语言(字符串替换的规则)

    1. {{变量}} {{变量.属性}}

 

    2. for循环

        {% for i in xx %}

            {{i}}

        {% endfor %}

 

        {{ forloop.counter }}  --> 计数

 

        {% empty %}  -->如果for循环的列表为空的时候显示的内容

 

    3. if判断

        {% if 条件%}

            条件成立要做的事儿

        {% else %}

            条件不成立要做的事儿

        {% endif %}

 

3. 作者增删改查 (作者和书是多对多的关系book   author   book2author)

    1. 作者关联的书有多个 (我们怎么通过Django 的ORM 取到和我这个作者关联的所有书)

    author_obj.books --> none; 在author表中没有book列

    author_obj.books.all()   --> 该作者所著书籍对象的列表

    # 在html的模版语言中不加(),即用author_obj.books.all,django会自动帮忙处理拼接

 

    2. 如何在页面上展示出 我这个作者关联的所有的书籍

       # 在html的模版语言中不加(),即用author_obj.books.all,django会自动帮忙处理拼接

       

        {% for book in author_obj.books.all%}

        {% if forloop.last%}  #最后一个值

            {{book.title}}

        {% else %}

            {{book.title}},

        {%endif%}

        {% endfor %}

    

    3. 如何更新作业关联的书籍

       author.books.set(new_book_ids)

       # 该操作执行之后,会执行自动保存操作; 故,之后不需.save()手动保存

 

4. 当出现黄页时,看trackback,标成深色的即为出错位置

 

5. request.POST.get(),只能用于取一个值的情况

   request.POST.getlist(),可用于取多个值(以列表形式)。通常如果html中出现select multiple或checkbox的时候,可能会用到getlist

 

6. 如果想设置默认跳转,在url中添加

   url(r'^$', views.publisher_list)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!