查漏补缺
Posted 不会起名字
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查漏补缺相关的知识,希望对你有一定的参考价值。
路由配置:
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) ########################################################################################################################
以上是关于查漏补缺的主要内容,如果未能解决你的问题,请参考以下文章