查漏補缺
阿新 • • 發佈:2017-11-12
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) ########################################################################################################################
查漏補缺