<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      web框架_django(調(diào)試工具、orm性能相關)

      調(diào)試工具django_debug_toolbar

      • 簡介
        • django_debug_toolbar是一組可以通過配置進行執(zhí)行過程顯示的面板。
      • 安裝
        • pip3 install django-debug-toolbar
      • 配置
        • 1 settings.py中,進行app的注冊。并進行相關配置,INSTALLED_APPS、MIDDLEWARE、INTERNAL_IPS、DEBUG_TOOLBAR_CONFIG
          • INSTALLED_APPS = [
                …
                'debug_toolbar',
            ]
            
            
            MIDDLEWARE = [
                # ...
                'debug_toolbar.middleware.DebugToolbarMiddleware',
                # ...
            ]
            
            
            # 如果是本機調(diào)試,還在將127.0.0.1加入 INTERNAL_IPS
            INTERNAL_IPS = [‘127.0.0.1’, ]
            
            # 配置jQquery,默認的是google的jquery,改成過程的cdn加速
            DEBUG_TOOLBAR_CONFIG = {
                "JQUERY_URL": '//cdn.bootcss.com/jquery/2.2.4/jquery.min.js',
            }
            
            #如果在Django項目中使用了jquery的話就可以直接將這一項置為空,那么django-debug-toolbar 就會使用你項目中用到的jquery:
            DEBUG_TOOLBAR_CONFIG = {
                "JQUERY_URL": '',
            }
            settings.py配置

             

        • 2 urls.py中,進行路由配置,如果有
          • from django.conf import settings
            from django.conf.urls import include, url
            
            if settings.DEBUG:
                import debug_toolbar
                urlpatterns = [
                    url(r'^__debug__/', include(debug_toolbar.urls)),
                ] + urlpatterns
            路由配置示例
        • 3 根據(jù)urls.py中配置的調(diào)試路由,訪問。  

       

       

      orm性能

      • 1 連表操作,一般的,直接使用  .    可以直接跨表進行查詢操作,但每執(zhí)行一次,都會進行一次連表操作,效率低
          • 解決方式一,降低sql查詢次數(shù),結合values使用連表查詢直接獲取最終數(shù)據(jù),減少直接使用   .    進行連表查詢操作。
            • from django.shortcuts import render
              from app01 import models
              # Create your views here.
              
              def index(request):
                  all_students = models.Student.objects.all().values('classes__id','classes__name')
                  # all_students = models.Student.objects.all()
                  for i in all_students:
                      # print(i.name,i.classes_id) # 1.通過django-debug-toolbar可以看到
                      # 查詢本表子段的時候用到了一次sql查詢
                      # print(i.name,i.classes.id,i.classes.name) # 2.但是如果進行關聯(lián)表數(shù)據(jù)的查詢
                      print(i['classes__id'],i['classes__name']) # 4.首先通過values進行了連表操作,效率就高一些了
                      
              
                  return render(request,'index.html',{'all_students':all_students})
              示例
          • 解決方式二,可以通過select_realated提前實現(xiàn)連表。這樣,在使用    .    跨表,就不是每次都進行一遍查詢了
            • from django.shortcuts import render
              from app01 import models
              # Create your views here.
              
              def index(request):
                  all_students = models.Student.objects.all().select_related('classes')
                  # 使用了select_related之后,里面的參數(shù)寫的是關系字段的名稱,那么就會先進行
                  # 連表操作,所以sql也是執(zhí)行了一次,效率高一些,但是他用在外鍵或者一對一的關系上
                  for i in all_students:
                      # print(i.name,i.classes_id)
                      print(i.name,i.classes.id,i.classes.name)
              示例
          • 解決方式三,通過prefetch_related實現(xiàn)子查詢方式,完成連表操作。
            • from django.shortcuts import render
              from app01 import models
              # Create your views here.
              
              def index(request):
                  all_students = models.Student.objects.all().prefetch_related('classes')
                  # prefetch_related,里面的參數(shù)寫的是關系字段的名稱,那么會執(zhí)行兩次sql,子查詢的效果,但是支持外鍵或一對一或者一對多的查詢了
                  for i in all_students:
                      # print(i.name,i.classes_id)
                      print(i.name,i.classes.id,i.classes.name)
              
              
                  return render(request,'index.html',{'all_students':all_students})
              示例
      • only,defer
        • 取出來的結果,還是queryset內(nèi)部包含對象,但是,這些對象只包含,only,defer指定的數(shù)據(jù)。
        • only指定包含的字段
        • defer指定需要排除的字段?! ?/li>
        • 示例代碼
          • from django.shortcuts import render
            from app01 import models
            # Create your views here.
            
            def index(request):
                all_students = models.Student.objects.all().only('name')#只要這個字段數(shù)據(jù)
                all_students = models.Student.objects.all().defer('name')#排除,除了這個字段其他字段數(shù)據(jù)都要
                for i in all_students:
                    print(i.name)
            
            
                return render(request,'index.html',{'all_students':all_students})
            View Code

             

       

      posted @ 2024-06-25 18:58  林山風火  閱讀(31)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 粉嫩一区二区三区国产精品| 高清中文字幕国产精品| 激情人妻自拍中文夜夜嗨| 国产成人亚洲精品狼色在线| 亚洲日本VA午夜在线电影| 天气| 性欧美暴力猛交69hd| 精品国产AV最大网站| 忘忧草在线社区www中国中文| 在线观看人成视频免费| 精品亚洲无人区一区二区| 国产成人精品免费视频大全| 国产精品第一二三区久久| 国产中文字幕精品免费| 美女一级毛片无遮挡内谢| 亚洲精品无码高潮喷水A| 国产熟睡乱子伦视频在线播放| av无码精品一区二区乱子| 成人欧美一区二区三区在线| 久久国产自拍一区二区三区| 中文字幕亚洲人妻系列| 97久久精品人人做人人爽| 澳门永久av免费网站| 亚洲av本道一区二区| 中文字幕无码中文字幕有码a| 欧美丰满熟妇hdxx| 国内少妇偷人精品免费| 麻豆果冻传媒2021精品传媒一区| 好男人官网资源在线观看| 国产亚洲av产精品亚洲| 国产在线观看网址不卡一区| 大地资源高清免费观看| 中文字幕人妻中出制服诱惑| 猫咪社区免费资源在线观看| 午夜DY888国产精品影院| 日本亚洲欧洲免费无线码| 成在线人视频免费视频| 一卡2卡三卡4卡免费网站| 军人粗大的内捧猛烈进出视频| 成年在线观看免费人视频| 亚洲欧美日韩综合久久|