Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 天天干天天干天天干天天,国产免费人成在线看视频,亚洲色图导航

          整合營銷服務商

          電腦端+手機端+微信端=數(shù)據同步管理

          免費咨詢熱線:

          Naive Admin Arco 中后臺框架發(fā)布啦,真正一站式開箱即用

          為了豐富 Naive Admin 生態(tài),近期我們一直在精雕細琢,日夜奮戰(zhàn),終于又迎來了Arco Vue Pro 正式發(fā)布上線!

          Arco Design 介紹

          ArcoDesign 是由字節(jié)跳動 GIP UED 團隊和架構前端團隊聯(lián)合推出的企業(yè)級設計系統(tǒng),在打磨了近 3 年之后,通過字節(jié)內部大量業(yè)務沉淀和驗證,開源了 ArcoDesign 設計系統(tǒng),旨在讓社區(qū)聽見更多的聲音,為更多中小型企業(yè)及個人設計師和開發(fā)者提效,創(chuàng)造更多高效美觀的“最佳實踐”。

          產品概要

          Naive Admin Arco 是一個基于 Vue3.0ViteArco VueTypeScript 中后臺解決方案。

          特點

          Naive Admin Arco 企業(yè)級中后臺前端框架,使用最新的前端技術棧,并提煉了典型的業(yè)務模型,頁面,包括二次封裝組件、動態(tài)菜單、權限校驗、粒子化權限控制等功能,它可以幫助你快速搭建企業(yè)級中后臺項目

          響應式、多主題,多配置,快速集成,開箱即用

          最新技術棧,使用 Vue 3、Typescript、Pinia、Vite 等前端前沿技術

          強大的鑒權系統(tǒng),對路由、菜單、功能點等支持 3 種鑒權模式,滿足不同的業(yè)務鑒權需求

          持續(xù)更新,實用性頁面模板功能和交互,隨意搭配組合,讓構建頁面變得簡單化

          功能

          • 一鍵鎖屏
          • 支持內嵌頁面
          • 黑暗模式一鍵切換
          • 支持多級路由嵌套
          • 基于Vue3、Vite、TypeScript構建
          • 路由菜單智能生成,只需創(chuàng)建路由文件即可
          • 頁面切換動畫:漸變 / 閃現(xiàn) / 滾動 / 消退 / 底部消失 / 底部消退
          • 含有大量典型的業(yè)務示例,持續(xù)更新中,之后可免費升級獲取

          布局

          • 登錄 / 注冊
          • 固定頂欄(可開關)
          • 固定主體(可開關)
          • 頁面重新刷新(可開關)
          • 面包屑導航(可開關)
          • 面包屑圖標(可開關)
          • 頁面動畫(可開關)
          • 導航欄模式:左側菜單 / 頂部菜單 / 頂部菜單混合
          • 導航欄風格:暗色側邊欄 / 白色側邊欄 / 暗色頂欄
          • 更多布局可在線體驗(右上角菜單項可動態(tài)預覽各種配置)

          鑒權

          • 路由級別鑒權
          • 側邊欄菜單鑒權
          • 功能塊鑒權
          • 功能點鑒權
          • 鑒權指令

          組件

          • Qrcode二維碼(自定義LOGO,大小,樣式,下載二維碼)
          • 富文本(增加文本,增加圖片,獲取html,渲染HTML內容
          • BasicModal彈窗(美化彈窗,可拖拽移動,確認按鈕可定制)
          • BasicForm表單(只需配置一個FormSchema數(shù)組,即可生成一個完整表單)
          • Cropper圖片裁剪(可裁剪圓形,方形,適用于頭像上傳,商品圖片上傳,前端裁剪)
          • BasicUpload圖片上傳(幫助文本,大小限制,內置圖片預覽,上傳圖片統(tǒng)一標準封裝)
          • BasicTable表格(自動分頁,編輯單元格/行,自適應高度,操作列深度封裝,列設置,密度設置,列順序可拖動)
          • Region地區(qū)組件(省市區(qū)選擇,數(shù)據動態(tài)加載方式,只需配置好相應接口即可,此組件靈活在于,可單獨選擇省,或者,省,市
          • Password密碼強度(內置多種校驗規(guī)則,長度,復雜度,強度等級,文案全部可自定義,給系統(tǒng)設置一個相對安全的密碼,就用他準沒錯)
          • BasicSelect選擇器(擴展選擇器組件,用于各種表單選擇器,簡化使用,內置緩存,可對相同的數(shù)據減少http請求,也可手動刷新數(shù)據源)

          頁面

          • 主控臺
          • 監(jiān)控臺
          • 工作臺
          • 用戶管理
          • 個人設置
          • 系統(tǒng)設置
          • 修改密碼
          • 菜單權限管理
          • 角色權限管理
          • 查詢列表(表格組件示例)
          • 更多頁面可在線查看

          項目展示

          更多頁面、功能,組件,請直接在線預覽查看

          在線預覽

          AdminPro

          在線文檔

          Naive Admin NaiveUi 生態(tài)最優(yōu)秀的中后臺框架,全面的系統(tǒng)配置,優(yōu)質模板,常用組件,真正一站式開箱即用

          天給大家分享一個Vue3.0框架搭建的后臺管理模板Vue3.xAdmin

          vue3.x-admin 使用vue3開發(fā)的后臺管理系統(tǒng)。主要包括CSS3特效、可拖拽的div、圖表、益智小游戲、vuex4.x 存儲用戶信息等功能。

          技術棧

          Vue3.x + vue-router4.x + vuex4.x + Less + Echarts

          目錄結構

          快速安裝

          通過如下步驟快速本地構建項目。

          # 克隆項目
          git clone https://github.com/Tyf2345/vue3.x-admin.git
          
          # 進入目錄
          cd vue-admin-ele
          
          # 安裝依賴包
          yarn install
          
          # 本地調試
          yarn serve

          結構非常簡單的一款后臺模板,需要快速上手vue3的不可錯過。

          # 預覽地址
          http://114.215.147.221:8086/login
          
          # 倉庫地址
          https://github.com/tyf2345/vue3.x-admin

          好了,就分享到這里。感謝各位的閱讀!



          jango自帶的admin系統(tǒng)

          Django最強大的部分之一是自動生成的Admin界面。它讀取模型數(shù)據來提供一個強大的、生產環(huán)境就緒的界面,使內容提供者能立即用它向站點中添加內容。

          它可以快速的開發(fā)出一個后臺管理界面,但是界面整體看起來一般般,之前為了學習練手,也是為了更美觀,都是自己手寫后臺管理系統(tǒng),這次是因為一些活需要快速開發(fā),就直接使用了自帶的后臺管理系統(tǒng),順便也整理一部分。

          如何開啟admin系統(tǒng)

          1)確保在settings.py中的INSTALLED_APPS安裝了

          INSTALLED_APPS = [
              'django.contrib.admin',
              'django.contrib.auth',
              'django.contrib.contenttypes',
              'django.contrib.sessions',
              'django.contrib.messages',
          
          ]
          

          2)在模板上下文中添加以下依賴。

          TEMPLATES = [
              {
                  'BACKEND': 'django.template.backends.django.DjangoTemplates',
                  'DIRS': [],
                  'APP_DIRS': True,
                  'OPTIONS': {
                      'context_processors': [
                          ...
                          'django.contrib.auth.context_processors.auth',
                          'django.contrib.messages.context_processors.messages',
                      ],
                  },
              },
          ]
          

          3)在中間件中添加以下依賴。

          MIDDLEWARE = [
              ...
              'django.contrib.auth.middleware.AuthenticationMiddleware',
              'django.contrib.messages.middleware.MessageMiddleware',
          
          ]
          

          4)遷移數(shù)據

          python manage.py makemigrations  # 創(chuàng)建數(shù)據庫遷移文件
          python manage.py migrate  # 根據數(shù)據庫遷移文件生成對應SQL語句并執(zhí)行
          

          5)創(chuàng)建超級管理員賬戶,創(chuàng)建的用戶是保存在auth_user表中。

          python manage.py createsuperuser
          

          6)運行程序,登陸django自帶admin后臺管理系統(tǒng)

          python manage.py runserver 0.0.0.0:8080
          

          7)在瀏覽器上輸入地址:http://127.0.0.1:8080/admin

          8)admin 界面默認是英文,如需要修改成中文,修改settings.py中的屬性。

          LANGUAGE_CODE = 'zh-Hans'
          


          現(xiàn)在后臺管理里面只顯示默認的2個模型,那要將我們定義的模型也顯示在后臺管理里面,應該怎么樣呢?

          這就需要我們自定義admin,把需要管理的模型添加到admin中。

          自定義admin樣式

          1)首先要在INSTALLED_APPS中添加對應的應用。

          INSTALLED_APPS = [
              ...
              'decoration',
          ]
          

          2)在應用appadmin.py中注冊。

          @admin.register(MaterialCategory)
          class MaterialCategoryAdmin(admin.ModelAdmin):
              pass
          

          3)刷新,可以看到有顯示了,但是上面app顯示的還是英文。

          4)修改app顯示名稱,所有跟app相關的內容配置,可以實現(xiàn)一個Appconfig類的子類來完成,django一般會默認在apps.py中建立一個。

          class DecorationConfig(AppConfig):
              default_auto_field = 'django.db.models.BigAutoField'
              name = 'decoration'
              verbose_name = '裝修選材'  # 顯示中文
          

          1、修改展示的列表項,即模型中其他字段內容,可以在admin.py中用 list_display修改展示的列表項。

          @admin.register(Material)
          class MaterialAdmin(admin.ModelAdmin):
              list_display = ['id', 'category', 'name', 'brand', 'specs', 'price', 'remarks']
          

          注意:list_display不支持多對多的,需要再進行處理,例如:

          # 模型
          materials = models.ManyToManyField('Material', verbose_name='包含材料')
          
          # 注冊
          @admin.register(ComboPlatter)
          class ComboPlatterAdmin(admin.ModelAdmin):
              list_display = ['id', 'materials','total_price', 'remarks']
          

          我們可以通過自定義個方法,來處理這個多對多字段:

          @admin.register(ComboPlatter)
          class ComboPlatterAdmin(admin.ModelAdmin):
              list_display = ['id', 'name', 'total_price', 'material_list', 'remarks']
          
              empty_value_display = "--"
          
              # 自定義list_display
              # list_display選項不能用于顯示多對多的字段(如materials)。
              # 如果需要通過list_display選項顯示多對多的字段或模型中原本不存在的字段或方法,我們需要新增自定義的list_play方法。
              def material_list(self, obj):
                  return [material.name for material in obj.materials.all()] # 獲取材料圖片所有對象,然后再迭代獲取對應名稱組成列表
          
              material_list.short_description = '可選材料'
          

          當然上面自定義方法不局限于多對多,有些特殊的也可以自定義,比如要顯示什么顏色。

          例如,當銷量大于0時,紅色顯示,默認是直接顯示字段:

          list_display = ['id', 'name', 'total_price', 'material_list', 'remarks', 'sale_nums']
          

          我們可以重新定義方法:

          list_display = ['id', 'name', 'total_price', 'material_list', 'remarks', 'sale_nums_display_color']
          
          def sale_nums_display_color(self, obj):
              if obj.sale_nums > 0:
                  color_code = 'red'
          
              else:
                  color_code = '#000'        
              return format_html(
                          '<span style="color:{}">{}</span>', color_code, obj.sale_nums
                      )
          
          sale_nums_display_color.short_description = '套餐銷量'
          

          類似的,如果我們想要顯示圖片的HTML:

                  return format_html(
                          '<img src={} style="width:50px;height:50px;">', obj.avatar
                      )
          

          2、可以根據設置項進行過濾。

              # 設置過濾選項
              list_filter = ['category'] 
          


          注意:過濾器如果是外鍵需要遵循這樣的語法:

              # 設置過濾選項
              # 過濾器如果是外鍵需要遵循這樣的語法:本表外鍵字段__主表要顯示的字段。如:“category__id”
              # 多個是 &&的關系
              list_filter = ['category__id', 'category']  # 也可以直接外鍵字段,默認就是模型的__str__輸出值
          

          3、每頁顯示記錄數(shù)。

              # 每頁顯示條目數(shù)
              list_per_page = 4
          

          4、搜索

              # 搜索字段
              search_fields =['name']
          

          search_fields,在使用admin 系統(tǒng)中的搜索時可能會出現(xiàn)“related Field has invalid lookup: icontains”錯誤,主要原因是外鍵查詢是需要指定相應的字段的。外鍵不應該只是一個model,而該是另一個表的明確的一個字段。所以我們需要指定特定的字段"本表外鍵字段__主表需查詢字段"

          例如上面category是一個外鍵,如果我們設置:

              # 搜索字段
              search_fields =['category']
          

          修改為即可:

              # 搜索字段
              search_fields =['category__name']
          

          5、django默認給字段為空的,顯示-

          我們可以修改默認顯示樣式:

          empty_value_display = "--"
          

          6、對于一多,有時候我們2個單獨編輯,非常麻煩

          先需要添加完【材料】才能添加【材料圖片】,非常麻煩,我們可以再增加【材料】同時添加【材料圖片】:

          # @admin.register(MaterialImg)
          # class MaterialImgAdmin(admin.ModelAdmin):
          class MaterialImgInline(admin.TabularInline):
              model = MaterialImg  # 關聯(lián)模型
          
              list_display = ['id', 'material','img']
          
          
          @admin.register(Material)
          class MaterialAdmin(admin.ModelAdmin):
              # 設置列表可顯示的字段
              list_display = ['id', 'category', 'name', 'brand', 'specs', 'price', 'remarks']
          
              # 設置過濾選項
              list_filter = ['category'] 
          
              # 每頁顯示條目數(shù)
              list_per_page = 10
          
              # 搜索字段
              search_fields =['category__name']
          
              inlines = [MaterialImgInline]
          

          點擊添加或者編輯,可以看到已經嵌入到材料一起了:

          7、默認可以點擊每條記錄第一個字段的值可以進入編輯界面。我們可以設置其他字段也可以點擊鏈接進入編輯界面,例如我們點擊名稱進入界面。

          #設置哪些字段可以點擊進入編輯界面
          list_display_links = ['id', 'name']  # 注意,默認的也要包含進去,否則會沖掉
          

          8、調整頁面頭部顯示內容和頁面標題

          admin.site.site_header = '裝修管理系統(tǒng)'
          admin.site.site_title = '裝修管理系統(tǒng)'
          

          9、如何將一個應用下的模型顯示到另外個應用app下呢?可以在model類中通過app_label指定應用:

          class OrderInfo(models.Model):
              ...
          
              class Meta:
                  db_table = 't_order_info'
                  verbose_name = '訂單'
                  verbose_name_plural = verbose_name
                  app_label = 'user'   # 使用app_label指定需要顯示到的應用下
          

          10、 有時候,我們需要為應用定義一些自定義的頁面,提供一些admin site+ORM無法直接提供的功能,比如根據數(shù)據統(tǒng)計,匯總展示每天的銷售整體處理情況,然后需要在admin site頁面中對應的app 模塊下加入跳轉鏈接。下面分兩步記錄一下實現(xiàn)步驟。

          首先,自定義Django template頁面,編寫一個簡單的模板文件:

          {% extends "admin/base_site.html" %}
          {% load static %}
          
          
          {% block content %}
              <div>
                  <label><h2>數(shù)據統(tǒng)計</h2> </label>
                  </br>
                  <table class="table" table-layout="fixed" width="600px">
                      <thead>
                          <tr>                    
                              <th> 日期 </th>
                               <th> 銷售總額 </th>
                          </tr>
                      </thead>
                      <tbody>
                          {% for order in order_queryset %}
                              <tr>
                                  <td>{{ order.day }}</td>
                                  <td>{{ order.total_amount }}</td>
                              </tr>
                          {% endfor %}
                      </tbody>
                  </table>
          
                  <br/>
                  <table class="table" table-layout="fixed" width="600px">
                      <thead>
                          <tr>                    
                              <th> 材料名稱 </th>
                               <th> 銷售總額 </th>
                          </tr>
                      </thead>
                      <tbody>
                          {% for good in goods_queryset %}
                              <tr>
                                  <td>{{ good.material__name }}</td>
                                  <td>{{ good.price }}</td>
                              </tr>
                          {% endfor %}
                      </tbody>
                  </table>
              </div>
          {% endblock %}
          

          views.py文件中,渲染模板:

          from django.db import connection
          from django.db.models import Sum
          
          def data_static(request):
              if request.method == 'GET':
                  # 按天分類
                  select = {'day': connection.ops.date_trunc_sql('day', 'create_time')}
                  # values在annotate之后表示select, 在annotate之前表示group by
                  order_queryset = OrderInfo.objects.extra(select=select).values('day').annotate(total_amount=Sum('total_amount'))
                  print(order_queryset)
          
                  # 按照分類進行統(tǒng)計
                  goods_queryset = OrderGoods.objects.values('material__name').annotate(price=Sum('price'))
                  print(goods_queryset)
          
                  return render(request, 'static.html', context={'goods_queryset': goods_queryset, 'order_queryset': order_queryset})
          

          配置路由:

          urlpatterns = [
              ....
              path('admin/user/datastat/', data_static),
          
          ]
          

          先直接在頁面上上如,查看效果:

          到這里,我們已經實現(xiàn)了自定義統(tǒng)計頁面的功能。

          那怎么樣將這個鏈接添加到admin下呢?

          要在admin site中添加一個自定義的跳轉鏈接,首先考慮要如何才能在對應的app下添加一個新的跳轉鏈接,

          最常見的情況顯然就是在其下增加一個對數(shù)據庫進行映射的model,以及對應的modeladmin

          那我們可以按照這個方式來試下,首先定義模型。

          由于對應的數(shù)據表model其實只是提供了一個生成admin site下跳轉鏈接的功能,其實際并沒有被訪問過,所以并不需要為其定義任何實際字段,構造一個空的model即可:

          class DataStat(models.Model):
              class Meta:
                  # db_table = 't_order_goods'
                  verbose_name = '數(shù)據統(tǒng)計'
                  verbose_name_plural = verbose_name
                  app_label = 'user'   # 強行使其在user應用下
          

          admin.py中進行注冊,并重寫負責默認頁面渲染行為的changelist_view函數(shù)實現(xiàn)了對自定義頁面的渲染:

          from decoration.models import DataStat
          from decoration.views import data_static
          
          @admin.register(DataStat)
          class DataStatAdmin(admin.ModelAdmin):
              def changelist_view(self, request, extra_content=None):
                  return data_static(request)
          

          添加如上代碼后,admin site頁面如下:

          11、Django admin默認的action只有刪除(delete)

          那如果我們需要實現(xiàn)其他功能,比如將勾選的訂單狀態(tài)修改。

          那我們需要自定義action

           # action即動作,是你對一個選定查詢集(queryset)要進行的操作。當你選定一個查詢集(queryset)后,
           # 你可以點擊action下拉菜單選擇action,然后點擊Go對其進行批量操作(如下所示)。Django admin默認的action只有刪除(delete)。
          
              '''自定義actions'''
              actions = ['order_stauts_change']
              def order_stauts_change(self, request, queryset):
                  # 將狀態(tài)和人置空
                  queryset.update(order_status=3)
          
              order_stauts_change.short_description = "所選訂單狀態(tài)修改為待收貨"
          

          12、有時候,我們想在數(shù)據保存時進行一些額外的操作(通過重寫ModelAdminsave_model實現(xiàn)),

          例如,之前做的點餐系統(tǒng),當收拾完桌子的時候,將預定人也清空。

              #將桌釋放的時候,前面對應使用人為空
              def save_model(self, request, obj, form, change):
          
                  if change: # 更改的時候
                      if obj.table_statue == '0':
                          # 將使用人為空
                          obj.table_user = None
          
          
                          super(TableAdmin, self).save_model(request, obj, form, change)
          
                          self.food_list(obj)
                  else:
                      super(TableAdmin, self).save_model(request, obj, form, change)
          

          還有一些其他的操作,可以根據具體業(yè)務進行挖掘開發(fā)。

          django admin集成富文本編輯器

          1)安裝:

          pip install django-ckeditor
          
          # 如果要在富文本里添加圖片還需要
          pip install pillow
          

          2)注冊:

          INSTALLED_APPS = [
              ...
              'ckeditor',
              'ckeditor_uploader', # 圖片
          ]
          

          3)如果要處理圖片,還需要在settings.py里面添加如下設置:

          # 前面兩個可能已經設置了,是存放用戶上傳文件的地方
          MEDIA_URL = '/media/'
          MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
          
          CKEDITOR_UPLOAD_PATH = 'img/cases/'
          
          CKEDITOR_CONFIGS = {    # 添加個性化的配置
              'default': {
                  'image_previewText':' ',    # 替換圖片顯示區(qū)域那一串搞不懂的字符串
                  'tabSpaces': 4,
              }
          }
          

          4)另外還需要添加一個路由用于上傳請求,在項目的urls.py

          from django.conf.urls.static import static
          
          from django.conf import settings
          
          urlpatterns = [
              ...
              path('ckeditor/', include('ckeditor_uploader.urls')),
          ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
          

          5)模型里面對應的字段設置。

          from ckeditor.fields import RichTextField
          from ckeditor_uploader.fields import RichTextUploadingField
          
              #description = models.TextField(verbose_name='案例詳細介紹')
              #description = RichTextField(verbose_name='案例詳細介紹') # 不帶圖片
              description = RichTextUploadingField(verbose_name='案例詳細介紹') # 帶有上傳圖片功能的富文本編輯
          

          6)重新遷移。

          但是有些問題,

          1)顯示的是繁體中文:

          檢查后發(fā)現(xiàn)原因在于CKEditor會使用settings.py文件中的語言設置。
          而我們settings.py中設置的LANGUAGE_CODE = 'zh-hans'簡體中文,這是因為Django2以上文件夾中沒有zh-cn文件夾,簡體中文是zh_Hans文件夾

          直接設置LANGUAGE_CODE = ‘zh-cn’會導致異常。但是這樣設置又會導致ckeditor找不到名為zh-Hans.js的語言文件,當找不到文件時,CKEditor會找到第一個名稱包含zhjs文件去調用。而zh.js中是繁體字。

          解決方案:

          ckeditor語言文件名稱,將zh.js字典內容替換成了zh-cn.js中的簡體內容。

          ckeditor語言文件所在路徑:env_decoration\Lib\site-packages\ckeditor\static\ckeditor\ckeditor\lang

          2)因為我們在富文本里面編輯內容,在數(shù)據庫中插入的是帶html代碼的樣式。

          如果直接獲取不處理的話,就會顯示類似這種:

          原因分析:
          在文章詳情頁沒有看到預期的效果,而是類似于一堆亂碼一樣的
          HTML 標簽,這些標簽本應該在瀏覽器顯示它本身的格式,但是 Django 出于安全方面的考慮,任何的HTML 代碼在 Django 的模板中都會被轉義(即顯示原始的 HTML 代碼,而不是經瀏覽器渲染后的格式)。

          所以我們需要在顯示的時候處理下,使其正常顯示。

          解決:
          方案1:為了解除轉義,只需在模板標簽使用
          safe 過濾器即可,告訴 Django,這段文本是安全的,你什么也不用做。

          對于如果傳遞給其他前端的,比如小程序,則有相對應的處理方式。

          更多學習筆記整理于微信公號【Python野路子】


          主站蜘蛛池模板: 亚洲AV无码一区二区乱子伦| 成人无码AV一区二区| 日本精品一区二区三区在线视频| 日韩社区一区二区三区| 精品国产a∨无码一区二区三区| 成人国产精品一区二区网站| 日韩精品国产一区| 亚洲大尺度无码无码专线一区| 亚洲国产老鸭窝一区二区三区| 中文字幕人妻无码一区二区三区| 波多野结衣中文一区二区免费| 夜精品a一区二区三区| 亚洲丰满熟女一区二区哦| 日本无卡码一区二区三区| 国产精品福利一区二区久久| 亚洲一区综合在线播放| 色偷偷一区二区无码视频| 日韩爆乳一区二区无码| 免费无码VA一区二区三区| 亚洲福利一区二区| 国产精品福利一区二区| 亚洲AV无码一区二区三区电影 | 一区二区高清在线观看| 高清在线一区二区| 无人码一区二区三区视频| 成人乱码一区二区三区av| 无码欧精品亚洲日韩一区夜夜嗨| 成人国产精品一区二区网站| 亚洲国产精品一区二区三区久久 | 秋霞鲁丝片一区二区三区| 99精品国产一区二区三区2021| 亚洲AV无码一区二区三区电影| 日韩高清一区二区三区不卡 | 久久国产精品免费一区二区三区 | 日韩精品午夜视频一区二区三区| 波多野结衣一区二区三区88| 高清一区二区三区| 国产内射999视频一区| 亚洲精品无码一区二区| 日本一区二区高清不卡| 久久国产视频一区|