精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Python輕松開發數據庫取數下載工具

開發 后端
而在dash_table中還有很多高級特性,可以極大程度上豐富DataTable()所渲染網頁表格的交互能力,今天的文章作為「交互表格篇」的下篇,我們就來一起學習其中比較實用的一些特性。

 1 簡介

這是我的系列教程「Python+Dash快速web應用開發」的第十四期,在前兩期中,我們針對dash_table的自定義樣式、前后端分頁、單元格內容編輯等特點展開了介紹。

而在dash_table中還有很多高級特性,可以極大程度上豐富DataTable()所渲染網頁表格的交互能力,今天的文章作為「交互表格篇」的下篇,我們就來一起學習其中比較實用的一些特性。

 

 

 

[[393870]]

 

圖1

2 dash_table的更多實用功能

2.1 更多表格交互特性

上一期文章最后我們學習了通過設置參數editable=True,使得渲染出的表格可以通過鼠標雙擊進行編輯,而dash_table除此之外,還有更多實用的交互能力:

2.1.1 按列排序

  • 普通單列排序

在DataTable()中,我們只需要設置參數sort_action='native',即可開啟列排序功能,此時每一列列名單元格內都會出現部件供我們點擊切換排序方式:

app1.py

 

  1. import dash 
  2. import dash_table 
  3. import dash_bootstrap_components as dbc 
  4.  
  5. import seaborn as sns 
  6.  
  7. df = sns.load_dataset('iris'
  8.  
  9. app = dash.Dash(__name__) 
  10.  
  11. app.layout = dbc.Container( 
  12.     [ 
  13.         dash_table.DataTable( 
  14.             data=df.to_dict('records'), 
  15.             columns=[ 
  16.                 {'name'column'id'column
  17.                 for column in df.columns 
  18.             ], 
  19.             style_table={ 
  20.                 'height''500px'
  21.                 'overflow-y''auto' 
  22.             }, 
  23.             sort_action='native' 
  24.         ) 
  25.     ], 
  26.     style={ 
  27.         'margin-top''50px' 
  28.     } 
  29.  
  30. if __name__ == '__main__'
  31.     app.run_server(debug=True

 

圖片

 

 

圖2

  • 基于后端排序的多列排序

在DataTable()中設置sort_action='native'時,對應的是「按列排序」的前端模式,也即是數據一次性灌注到瀏覽器的前提下進行排序,這種方式不僅不適合大型數據集,而且只支持「單列排序」。

而當數據渲染方式為后端模式時,我們通過設置參數sort_action='custom'以及sort_mode='multi',配合在回調中獲取屬性sort_by中記錄的參與排序的列名及升序降序方式,就可以實現多列排序。

我們在上一期的app2.py的基礎上修改得到下面的例子:

app2.py

 

  1. import dash 
  2. import dash_bootstrap_components as dbc 
  3. import dash_table 
  4. from dash.dependencies import Input, Output 
  5.  
  6. import seaborn as sns 
  7.  
  8. df = sns.load_dataset('iris'
  9. df.insert(0, '#', df.index
  10.  
  11. app = dash.Dash(__name__) 
  12.  
  13. app.layout = dbc.Container( 
  14.     [ 
  15.         dbc.Spinner( 
  16.             dash_table.DataTable( 
  17.                 id='dash-table'
  18.                 columns=[ 
  19.                     {'name'column'id'column
  20.                     for column in df.columns 
  21.                 ], 
  22.                 page_size=15,  # 設置單頁顯示15行記錄行數 
  23.                 page_action='custom'
  24.                 page_current=0, 
  25.                 style_header={ 
  26.                     'font-family''Times New Romer'
  27.                     'font-weight''bold'
  28.                     'text-align''center' 
  29.                 }, 
  30.                 style_data={ 
  31.                     'font-family''Times New Romer'
  32.                     'text-align''center' 
  33.                 }, 
  34.                 sort_action='custom'
  35.                 sort_mode='multi' 
  36.             ) 
  37.         ) 
  38.     ], 
  39.     style={ 
  40.         'margin-top''50px' 
  41.     } 
  42.  
  43.  
  44. @app.callback( 
  45.     [Output('dash-table''data'), 
  46.      Output('dash-table''page_count')], 
  47.     [Input('dash-table''page_current'), 
  48.      Input('dash-table''page_size'), 
  49.      Input('dash-table''sort_by')] 
  50. def refresh_page_data(page_current, page_size, sort_by): 
  51.  
  52.     if sort_by: 
  53.         return ( 
  54.             df 
  55.             .sort_values( 
  56.                 [col['column_id'for col in sort_by], 
  57.                 ascending=[ 
  58.                     col['direction'] == 'asc' 
  59.                     for col in sort_by 
  60.                 ] 
  61.             ) 
  62.             .iloc[page_current * page_size:(page_current + 1) * page_size] 
  63.             .to_dict('records'), 
  64.             1 + df.shape[0] // page_size 
  65.         ) 
  66.  
  67.     return ( 
  68.         df.iloc[page_current * page_size:(page_current + 1) * page_size].to_dict('records'), 
  69.         1 + df.shape[0] // page_size 
  70.     ) 
  71.  
  72.  
  73. if __name__ == '__main__'
  74.     app.run_server(debug=True

 

 

 

圖3

2.1.2 按列條件篩選

除了基于指定字段進行排序之外,dash_table還支持列的條件篩選,設置filter_action="native",就可以開啟基礎的按列條件篩選功能,此時每一列表頭下都會多出供用戶輸入篩選條件的單元格:

app3.py

 

  1. import dash 
  2. import dash_table 
  3. import dash_bootstrap_components as dbc 
  4.  
  5. import seaborn as sns 
  6.  
  7. df = sns.load_dataset('iris'
  8.  
  9. app = dash.Dash(__name__) 
  10.  
  11. app.layout = dbc.Container( 
  12.     [ 
  13.         dash_table.DataTable( 
  14.             data=df.to_dict('records'), 
  15.             columns=[ 
  16.                 {'name'column'id'column
  17.                 for column in df.columns 
  18.             ], 
  19.             # 自定義條件篩選單元格樣式 
  20.             style_filter={ 
  21.                 'font-family''Times New Romer'
  22.                 'background-color''#e3f2fd' 
  23.             }, 
  24.             style_table={ 
  25.                 'height''500px'
  26.                 'overflow-y''auto' 
  27.             }, 
  28.             style_header={ 
  29.                 'font-family''Times New Romer'
  30.                 'font-weight''bold'
  31.                 'text-align''center' 
  32.             }, 
  33.             style_data={ 
  34.                 'font-family''Times New Romer'
  35.                 'text-align''center' 
  36.             }, 
  37.             filter_action="native" 
  38.         ) 
  39.     ], 
  40.     style={ 
  41.         'margin-top''50px' 
  42.     } 
  43.  
  44. if __name__ == '__main__'
  45.     app.run_server(debug=True

 

圖片

 

 

圖4

而dash_table中自帶的條件篩選語法很豐富,有條件的朋友可以前往https://dash.plotly.com/datatable/filtering了解更多。

而dash_table同樣可以實現后端篩選,和前面的后端排序類似,主要利用filter_query屬性的回調變化在后臺基于pandas等框架進行數據篩選,比較簡單,這里就不再贅述。

2.2 自帶的數據表格下載功能

dash_table還自帶了將當前所渲染的表格內容直接下載為csv或xlsx格式文件的簡易功能,通過參數export_format設置導出的文件格式,但自帶的下載按鈕樣式比較丑,如果你對此有比較高的要求,還是建議結合之前的「上傳下載篇」自己設計相關功能:

 

 

 

 

 

圖5

2.3 凍結首行

通過設置參數fixed_rows={'headers': True},我們可以實現下滑查看表格的過程中,始終保持表頭被凍結:

 

圖片

 

圖6

3 開發一個在線取數工具

在學習完今天的內容之后,我們來結合之前「上傳下載篇」中提到的下載功能,來制作一個簡單的對指定數據庫中的數據表進行快速條件篩選并下載的工具,其中DataTable的derived_virtual_data屬性記錄了經過排序、條件篩選等操作后當前顯示的表格數據:

 

 

圖7

app4.py

 

  1. import dash 
  2. import dash_bootstrap_components as dbc 
  3. import dash_core_components as dcc 
  4. import dash_html_components as html 
  5. import dash_table 
  6. from dash.dependencies import Input, Output 
  7.  
  8. from flask import send_from_directory 
  9.  
  10. import os 
  11. import uuid 
  12. from sqlalchemy import create_engine 
  13. import pandas as pd 
  14.  
  15. try: 
  16.     os.mkdir("downloads"
  17. except FileExistsError: 
  18.     pass 
  19.  
  20. engine = create_engine('mysql+pymysql://root:mysql@localhost/DASH'
  21.  
  22. app = dash.Dash(__name__) 
  23.  
  24.  
  25. @app.server.route('/download/<file>'
  26. def download(file): 
  27.     return send_from_directory('downloads', file) 
  28.  
  29.  
  30. app.layout = dbc.Container( 
  31.     [ 
  32.         dbc.Row( 
  33.             [ 
  34.                 dbc.Col(dbc.Button('更新數據表', id='refresh-tables', style={'width''100%'}), width=2), 
  35.                 dbc.Col(dcc.Dropdown(id='table-select', style={'width''100%'}), width=2) 
  36.             ] 
  37.         ), 
  38.         html.Hr(), 
  39.         dash_table.DataTable( 
  40.             id='dash-table'
  41.             editable=True
  42.             page_size=15, 
  43.             style_header={ 
  44.                 'font-family''Times New Romer'
  45.                 'font-weight''bold'
  46.                 'text-align''center' 
  47.             }, 
  48.             style_data={ 
  49.                 'font-family''Times New Romer'
  50.                 'text-align''center' 
  51.             }, 
  52.             style_data_conditional=[ 
  53.                 { 
  54.                     # 對選中狀態下的單元格進行自定義樣式 
  55.                     "if": {"state""selected"}, 
  56.                     "background-color""#b3e5fc"
  57.                     "border""none" 
  58.                 }, 
  59.             ], 
  60.             filter_action="native" 
  61.         ), 
  62.         html.Br(), 
  63.         html.A(id='download-url', target="_blank"
  64.     ], 
  65.     style={ 
  66.         'margin-top''50px' 
  67.     } 
  68.  
  69.  
  70. @app.callback( 
  71.     Output('table-select''options'), 
  72.     Input('refresh-tables''n_clicks'
  73. def refresh_tables(n_clicks): 
  74.     if n_clicks: 
  75.         return [ 
  76.             { 
  77.                 'label'table
  78.                 'value'table 
  79.             } 
  80.             for table in pd.read_sql_query('SHOW TABLES', con=engine)['Tables_in_dash'
  81.         ] 
  82.  
  83.     return dash.no_update 
  84.  
  85.  
  86. @app.callback( 
  87.     [Output('dash-table''data'), 
  88.      Output('dash-table''columns')], 
  89.     Input('table-select''value'
  90. def render_dash_table(value): 
  91.     if value: 
  92.         df = pd.read_sql_table(value, con=engine) 
  93.  
  94.         return df.to_dict('records'), [ 
  95.             {'name'column'id'column
  96.             for column in df.columns 
  97.         ] 
  98.  
  99.     else
  100.         return [], [] 
  101.  
  102.  
  103. @app.callback( 
  104.     [Output("download-url""href"), 
  105.      Output("download-url""children")], 
  106.     [Input("dash-table""derived_virtual_data"), 
  107.      Input("dash-table""filter_query")], 
  108.     prevent_initial_call=True 
  109. def download_table(derived_virtual_data, filter_query): 
  110.     if derived_virtual_data: 
  111.         print(derived_virtual_data) 
  112.  
  113.         filename = f"output_{uuid.uuid1()}.xlsx" 
  114.  
  115.         pd.DataFrame(derived_virtual_data).to_excel("downloads/" + filename, index=False
  116.  
  117.         return "/download/" + filename, "下載當前狀態表格" 
  118.  
  119.     return """" 
  120.  
  121.  
  122. if __name__ == '__main__'
  123.     app.run_server(debug=True

 

責任編輯:華軒 來源: Python大數據分析
相關推薦

2010-06-07 14:45:37

Linux下載工具

2012-06-01 09:29:56

HTML5

2010-06-03 10:53:13

Linux下載工具

2010-06-03 11:12:03

Linux下載工具

2010-06-03 11:28:35

2010-06-04 17:16:25

Linux 下載工具

2023-04-18 18:22:31

開源工具數據庫

2011-03-04 11:08:46

ADO.NET數據庫

2021-04-24 23:26:12

Python儀表盤存儲

2021-04-11 11:24:22

Python工具數據庫

2010-01-04 17:35:32

Silverlight

2010-06-13 15:32:22

Linux 下載工具

2011-10-12 11:22:51

LinuxClipGrab

2010-05-28 12:59:18

Linux下載工具

2010-05-28 13:22:57

2010-05-28 12:43:12

Linux下載工具

2010-02-04 15:17:48

Linux wget

2023-06-08 08:46:37

Motrix下載工具

2023-11-27 08:51:46

PythonRequests庫

2021-03-13 16:14:58

iOS磁力下載App
點贊
收藏

51CTO技術棧公眾號

无码人妻精品一区二区中文| 日韩欧美国产免费| 亚洲国产综合一区| 国产日韩亚洲| 日韩小视频网址| 成人做爰www看视频软件| 日韩国产激情| 亚洲精品久久久久久国产精华液| 久久国产精品高清| 国产精品久久久久久免费| 一本久道久久久| 久久精品99无色码中文字幕| 国产又黄又粗又猛又爽的视频| 日韩深夜福利网站| 欧美性xxxx在线播放| 免费看污污视频| 国产在线观看精品一区| 成人免费毛片app| 国产精品主播视频| 国产免费av一区| 韩日在线一区| 久久激情视频免费观看| 亚洲图片另类小说| 精品网站aaa| 91精品国产91久久久久久一区二区| aⅴ在线免费观看| 日本孕妇大胆孕交无码| 国产精品久久久久久久久晋中 | 中文字幕日韩综合av| 蜜臀aⅴ国产精品久久久国产老师 性活交片大全免费看 | 一区二区三区自拍视频| 欧美精品自拍偷拍| 中国黄色片免费看| 欧美亚洲大片| 色妹子一区二区| 国模吧无码一区二区三区| 国产丝袜在线播放| 夜夜精品视频一区二区| 欧美 日韩 国产精品| 黄色成人在线| 亚洲人吸女人奶水| 中文字幕一区二区三区在线乱码| h视频网站在线观看| 久久精品亚洲麻豆av一区二区| 好吊妞www.84com只有这里才有精品| 国产成人麻豆精品午夜在线| 精品在线观看免费| 亚洲精品欧美日韩| 99久久精品免费看国产交换| 国内精品伊人久久久久av一坑| 国产欧美日韩精品专区| 中文字幕一区二区久久人妻| 日韩不卡一二三区| 国产精品爱久久久久久久| 久久久精品毛片| 日本不卡视频一二三区| 国产精品一区二区久久久| 伊人久久亚洲综合| 久久99蜜桃精品| 亚洲一区二区三区四区在线播放| 国产麻豆一精品一男同| 国产成人99久久亚洲综合精品| www 成人av com| 日韩中文字幕综合| 久久一二三国产| 日韩一区二区电影在线观看| 欧美日韩在线资源| 亚洲激情校园春色| 欧美综合在线播放| 日韩在线免费| 日韩一二三四区| 欧美大片免费播放器| 国产日韩视频在线| 久久九九全国免费精品观看| 免费一级全黄少妇性色生活片| 99国产精品自拍| 国产精品老牛影院在线观看| 国产毛片毛片毛片毛片毛片| 成人免费高清视频在线观看| 欧美亚洲国产免费| 黄色网页网址在线免费| 亚洲第一福利一区| 中文字幕永久视频| 一区二区在线视频观看| 亚洲欧美日本另类| 欧美日韩中文字幕在线观看| 中文亚洲免费| 成人两性免费视频| 国产又爽又黄网站亚洲视频123| 国产午夜精品一区二区三区嫩草 | 最新国产在线拍揄自揄视频| 亚洲成年人影院| 日本久久精品一区二区| 中文字幕一区二区三区中文字幕| 精品亚洲国产视频| 国产十六处破外女视频| 美女91精品| 91精品国产综合久久久久久丝袜| 亚洲色图欧美视频| 公肉吊粗大爽色翁浪妇视频| 欧美视频二区| 国产精品亚洲第一区| 免费成人在线看| 亚洲欧美自拍偷拍| 免费激情视频在线观看| 91午夜精品| 日韩视频欧美视频| 成人午夜淫片100集| 国产精品亚洲第一| 人偷久久久久久久偷女厕| 中文字幕中文字幕在线中高清免费版 | 91色porny在线视频| eeuss中文| 成人涩涩视频| 精品亚洲男同gayvideo网站| 欧美黄片一区二区三区| 麻豆国产91在线播放| 久久综合入口| 91丝袜在线| 日韩一区二区精品在线观看| 91成人精品一区二区| 国产农村妇女精品一二区| 99久久99久久| av网站在线看| 欧美精品第1页| 能直接看的av| 老司机午夜免费精品视频| aa成人免费视频| 在线观看操人| 日韩精品在线一区二区| 午夜爱爱毛片xxxx视频免费看| 老鸭窝一区二区久久精品| 奇米精品在线| 在线成人视屏| 在线日韩精品视频| 欧美三级网站在线观看| 久久久www成人免费毛片麻豆| 可以在线看的av网站| 国产精品美女在线观看直播| 欧美国产第二页| www香蕉视频| 亚洲精品国产精品乱码不99| 日韩av影视大全| 午夜精品久久久久99热蜜桃导演| 亚洲va欧美va国产综合剧情| 免费a级在线播放| 制服丝袜亚洲播放| 免费麻豆国产一区二区三区四区| 国产剧情一区在线| 国产爆乳无码一区二区麻豆| 天堂av一区| 久久久亚洲成人| 性感美女一级片| 一本久久a久久精品亚洲| 国产精品探花一区二区在线观看| 一本久道综合久久精品| 热舞福利精品大尺度视频| 成人日韩在线| 日韩在线视频国产| 精品区在线观看| 亚洲18色成人| 欧洲av一区二区三区| 美女视频黄免费的久久| 99热一区二区三区| 风间由美一区二区av101| 97色在线视频| 91涩漫在线观看| 日韩欧美国产一区二区在线播放| 国产精品7777777| 国产亚洲一区二区三区在线观看| 国产免费999| 欧美激情亚洲| 久久精品五月婷婷| 色综合视频一区二区三区44| 欧美第一黄网免费网站| 婷婷五月综合激情| 欧美日韩中文字幕一区| 久久久99精品| 国产亚洲欧美激情| 国产不卡的av| 国产日韩综合| 六月婷婷激情网| 欧美激情极品| 成人高清视频观看www| 成人免费图片免费观看| 这里只有精品视频在线| 高h震动喷水双性1v1| 精品视频1区2区| 久久精品国产亚洲AV无码麻豆| 国产午夜精品久久久久久免费视 | 久久免费视频网站| 福利小视频在线观看| 日韩美女一区二区三区| 加勒比在线一区| 亚洲一区二区三区四区的| 国产三级av在线播放| 国产成人啪免费观看软件| 免费观看成人网| 狠色狠色综合久久| 夜夜爽99久久国产综合精品女不卡 | 亚洲精品一区二区三区四区高清| 亚洲午夜在线播放| 欧美日韩亚洲高清| 欧美久久久久久久久久久久| 国产欧美视频在线观看| 亚洲色图欧美日韩| 国产一区二区导航在线播放| 欧美精品成人网| 国产欧美日韩综合一区在线播放 | 国产美女精品| 国产肉体ⅹxxx137大胆| 久久国产成人精品| 日韩欧美在线一区二区| 欧美理论电影在线精品| 91成人免费观看| 青青青国产精品| 国产精品黄色av| 国产精品专区免费| 69久久夜色精品国产69| 欧美黄色视屏| 精品自拍视频在线观看| 麻豆网站视频在线观看| 最新的欧美黄色| 欧美女优在线观看| 日韩精品免费在线视频观看| 丰满肉肉bbwwbbww| 日韩天堂在线观看| av无码精品一区二区三区宅噜噜| 欧美日韩高清一区二区| 黄色av一区二区| 色网站国产精品| 日韩美一区二区| 色天天综合久久久久综合片| 日韩精品久久久久久免费| 精品久久久久久久大神国产| 色网站在线播放| 调教+趴+乳夹+国产+精品| 日本一级淫片色费放| 亚洲国产精品天堂| 日本少妇毛茸茸高潮| 亚洲国产另类av| 日韩在线视频免费播放| 日韩欧美999| 91丨九色丨海角社区| 91福利资源站| 一级特黄aa大片| 这里只有精品99re| 精品久久无码中文字幕| 日韩欧美一级二级三级久久久| 亚洲国产精品欧美久久 | 亚洲在线www| 成人盗摄视频| 久久综合婷婷综合| 国产探花一区| 在线播放 亚洲| 欧美精品一线| 浮妇高潮喷白浆视频| 久久婷婷激情| 污污的视频免费| 国产传媒日韩欧美成人| 色婷婷免费视频| 国产日韩欧美麻豆| 国产97免费视频| 午夜av区久久| 久久久999久久久| 9191久久久久久久久久久| 性生交大片免费看女人按摩| 欧美精品一区二区久久久| 日韩一二三四| www.日本久久久久com.| 久久亚洲资源| 日韩免费高清在线观看| 四虎视频在线精品免费网址| 成人18视频| 国产精品自拍区| 青青草免费在线视频观看| 亚洲区国产区| 久久综合伊人77777麻豆最新章节| 激情综合网av| 中文字幕一二三四区| 中文字幕一区二区5566日韩| 国产无码精品久久久| 欧日韩精品视频| 亚洲精品97久久中文字幕| 亚洲色图综合网| 在线观看a级片| 国产精品第2页| 超碰成人免费| 亚洲午夜精品久久久久久浪潮| 亚洲午夜一级| 性欧美videossex精品| 成人免费va视频| 激情高潮到大叫狂喷水| 狠狠躁18三区二区一区| 国产伦理吴梦梦伦理| 亚洲欧美激情另类校园| 中日韩高清电影网| 国产精品免费久久久| 精品国产导航| www国产无套内射com| 日韩av一区二区三区| 丝袜熟女一区二区三区| 中文字幕亚洲精品在线观看| 欧美h在线观看| 欧美va亚洲va在线观看蝴蝶网| 91精品国产综合久久久久久豆腐| 午夜精品免费视频| 久久久久久久久久久久电影| 视频一区二区三区在线观看| 日韩午夜激情| xxxx国产视频| 自拍av一区二区三区| 成人午夜精品视频| 日韩精品视频在线观看免费| 中文av资源在线| 92国产精品视频| 久久网站免费观看| 男操女免费网站| 久久久久99精品国产片| 国产精品第九页| 欧美成人a在线| a级片国产精品自在拍在线播放| 国产精品免费一区| 韩日一区二区三区| 欧美精品色婷婷五月综合| 白白色 亚洲乱淫| 久久精品国产亚洲AV无码麻豆| 日韩一级大片在线| 日本在线观看高清完整版| 亚洲一区二区少妇| 亚洲精品成人无限看| 中文字幕色网站| 亚洲欧美日韩国产综合在线| 无码人妻av一区二区三区波多野| 亚洲精品小视频| 欧美极品影院| 日韩欧美在线电影| 美女视频黄 久久| 999精品在线视频| 56国语精品自产拍在线观看| 欧美18hd| 亚洲一区二区三区毛片| 欧美私人啪啪vps| 亚洲乱妇老熟女爽到高潮的片 | 日韩在线免费观看视频| 福利一区二区| 国产a级片免费看| 国v精品久久久网| 日韩精品人妻中文字幕| 日韩久久免费视频| 欧美性xxx| 亚洲免费久久| 国产一区二区调教| 国产盗摄x88av| 亚洲第一天堂无码专区| 在线天堂资源www在线污| 欧美美乳视频网站在线观看| 免费观看在线色综合| 五月婷婷综合激情网| 日韩一区二区电影在线| 91高清视频在线观看| 欧美国产二区| 麻豆国产精品一区二区三区 | 天堂久久一区二区三区| 国产真人真事毛片视频| 欧美一区二区福利在线| 草美女在线观看| 日韩av一区二区三区美女毛片| 男女视频一区二区| 丰满少妇高潮久久三区| 日韩电影免费在线观看中文字幕| 亚洲第一二三四区| xxxxxx在线观看| 2021国产精品久久精品| 中文字幕资源网| 国产最新精品视频| 成人亚洲一区| 香蕉在线观看视频| 日本高清成人免费播放| 在线观看wwwxxxx| 日产国产精品精品a∨| 国产剧情一区二区| 精品视频一二三区| 欧美高清一级大片| 欧洲乱码伦视频免费| 人妻 丝袜美腿 中文字幕| 91国偷自产一区二区三区成为亚洲经典| 成人黄色网址| 欧美日韩综合另类| 成人在线一区二区三区| 中文字幕在线2019| 午夜精品久久久久久99热软件| 日韩久久视频| 亚洲黄色免费在线观看| 7777精品伊人久久久大香线蕉完整版| 亚洲妇女成熟| 大胆欧美熟妇xx| 国产精品视频一二三区| 神马午夜电影一区二区三区在线观看 | 91porny在线|