欢迎光临外链建设网站快速建站提升流量与权重!

外链建设

外链建设网站,帮助您快速打造排名!

104.Django查询和代码调试的工具

作者:jcmp      发布时间:2021-04-17      浏览量:0
一.查询queryset =Record

一.查询

queryset =Record.objects.filter(car__card__startswith=carno)。

解释:以上的这句代码是在Record这个类中调用object方法的。fileter()方法查询car这个类中的carno字段的值的开头是否和carno的相同 --startswith 就是模糊查询匹配开头。

startswith:字符串后面加%通配符的模糊查询 contains:字符串两端加%通配符的模糊查询 endswith:字符串前面加%通配符的模糊查询。

Twacher.objects.filter(subject__no=sno).defer('subject')Twacher.objects.filter(subject__no=sno).filter('subject')。

查询----只查需要的 对象.object.filter().only(只查需要的)。

查询----排除查询 对象.object.filter().defer(把那些排除在查询之外) mapper 里面模型映射器 一个模型可以写一个或多个映射器。

二.Q对象

Q对象是Django自带的,两个对象之间可以做运算。 @(而且) |(或者)。

queryset = Record.objects.filter( Q(car__carno__startswith=carno) | Q(car__owner__contains=carno))。

上面查询是这两个条件有一个成立就可以这就是Q对象

三.查询中的一些问题的解决的办法。

(1).多对多的查询: .prefetch_related("tags") # 解决多对多的查询。

.prefetch_related("tags") # 解决多对多的查询(2).顺带查询----不需要额外再发sql'语句,提升性能。select_related("type") 顺带查询 解决一加n查询.

四.POST和GET请求

return JsonResponse(data) 返回Json格式的数据 POST和GET是HTTP协议定义的与服务器交互的方法。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。另外,还有PUT和DELETE方法。 1.POST和GET都可以与服务器完成查,改,增,删操作。

2.GET提交,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接.

POST提交,把提交的数据放置在HTTP包的包体中;因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变。

五.控制台日志

1.日志的配置从官网直接copy,有详细的教程。 2程序日志的级别,越低越详细:

DEBUG < INFO < WARNING < ERRR

六.数据查询时候的性能

1.数据库的1+n查询会导致数据的性能下降,如何解决? 2.查询时候当有一对多或则多对一的时候在view函数在通过Record.objects.filter()查询的时候加上select_related("关联的表")。

queryset = Record.objects.filter( Q(car__carno__startswith=carno) | Q(car__owner__contains=carno) ).select_related("car").order_by("-offend_time")。

3.使用代码调试的工具可以更直观的看出错误和查询的性能。

代码调试工具: (1)ELK--------->日志的处理的平台。 ElasticSearch/Logstash/Kibana (2)Django debug。

想要写一些简单的前端页面样式----- https://element.eleme.cn/#/zh-CN/component/alert 去饿了吗分装好的共享网站 要实现定时任务要使用APSchedule或Celery三方库。