1. 程式人生 > >查漏補缺

查漏補缺

brush rfi 文件名 cnblogs simple 正則 過濾 char __str__

路由配置:

urls路由配置(正則,視圖,xxx),還有第三個參數,用作反向解析:

技術分享

瀏覽器配置:

技術分享

當我們訪問瀏覽器的時候:

技術分享

有的時候url需要經常更新,在你的後臺更新後那麽在前端也要更新,少的話還好說,,多了那可就麻煩了,此時反向解析來了....


render,redirect,HTTPresponse:

render返回渲染的模板;redirect跳轉頁面;HTTPresponse返回一個字符串;


from django.template import Template,Context == render方法:

context傳值假如變量過多可以用local(),但是假如views有100個變量,模板中用1個,他會吧所有的值串過去。。。

深度查詢:序列類型在前端可以通過"."的方式進行查找

過濾器:後端串過來的數據跟前端需要渲染的數據可能有細微的差別,此時就出現了過濾器{{name|filter}}

反向查詢reverse:原本的查詢結果四123,加上reverse之後就是321,顛倒了一下

過濾器:在應用下建templatetags文件,只能是這個文件名,在裏邊新建任意名字文件,setting中的App下邊配置↓

模板中使用自定義的過濾器必須現在模板中導入:{{load xxx}}

自定義標簽filter可以傳兩個{{ xx|filter }}變量;simple_tags可以傳多個變量,放在{% simple_tag %}

傳多個變量不能放在if 和for中;if可以跟在if 後邊


查詢的時候先分清他是queryset還是model,query必須轉換為model對象才可以.出來東西

class Author(models.Model):
    ‘‘‘作者表‘‘‘
    name = models.CharField(max_length=32)
    book = models.ManyToManyField(to="Book")
    def __str__(self):
        return self.name

class Book(models.Model):
    ‘‘‘書表‘‘‘
    title = models.CharField(max_length=32)
    price = models.CharField(max_length=32)
    publish = models.ForeignKey(to="Publish")
    def __str__(self):
        return self.title
    #egon出版過的書的出版社信息

class Publish(models.Model):
    ‘‘‘出版社‘‘‘
    address = models.CharField(max_length=32)
    def __str__(self):
        return self.address  

查詢語法復習總結

# author = models.Author.objects.all()   #查詢到所有的作者對象queryset   author多對多book
    # book = models.Book.objects.all()  # 查詢到所有的書籍對象queryset       book多對一publish
    # publish = models.Publish.objects.all()   #查詢到所有的出版社對象queryset
    # #================================================字段查詢============================================================
    # for te in author:
    #     print("======author",te.name)      #查詢自己表內的信息
    #     print("======author_book",te.book.first().title)      #通過自己查找多對多的字段
    #     print("======author_book_publish",te.book.first().publish.address)      #通過自己查找多對多的字段,然後查找多對一字段
    # for te in book:
    #     print("========tetetet",te)
    #     print("======book",te.title,te.price)      #查詢自己表內的信息
    #     print("========book_publish",te.publish.address)     #通過自己查詢多對一的出版社表
    #     print("==========book_author",te.author_set.first())     #通過自己反向查找作者姓名
    # for te in publish:
    #     print("=====publish",te.address)      #查詢自己表內的信息
    #     print("=====publish_book",te.book_set.first().title)
    #     print("=======publish_book_author",te.book_set.first().author_set.first())
    #
    #
    # author_book_publish = author.first().book.all().first().title
    # print("==================================",author_book_publish)
    # #============================================雙下劃線正向查詢===========================================================

    # author = models.Author.objects.all()  # 查詢到所有的作者對象queryset   author多對多book
    # book = models.Book.objects.all()  # 查詢到所有的書籍對象queryset       book多對一publish
    # publish = models.Publish.objects.all()  # 查詢到所有的出版社對象queryset

    # book_title = author.filter(name="egon").values("book__title")      #在author表中查book標的title
    # book_price = author.filter(name="egon").values("book__price")      #在author表中查book表的price
    # book_publish_address = author.filter(name="egon").values("book__publish__address")   #在author表中二次關聯查找出版社
    # print("============book_title|book_price",book_title,book_price)
    # print("============book_publish_addredd",book_publish_address)

    # #============================================雙下劃線反向查詢===========================================================
    # book_title = publish.filter(address="北京").values("book__title")
    # book_price = publish.filter(address="北京").values("book__price")
    # publish_book = publish.filter(address="北京").values("book__author")
    # publish_author_book = publish.filter(address="北京").values("book__author__name")
    # print("============book_title|book_price",book_title,book_price)
    # print("============publish_book",publish_book)
    # print("============publish_author_book",publish_author_book)

    ########################################################################################################################

 

查漏補缺