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

在不到 30 分鐘內構建一個樹莓派監控儀表盤

系統 Linux
使用 Python 制作一個 API 來監控你的樹莓派硬件,并使用 Appsmith 建立一個儀表盤。

如果你想知道你的樹莓派的性能如何,那么你可能需要一個樹莓派的儀表盤。在本文中,我將演示如何快速構建一個按需監控儀表盤,以實時查看你的樹莓派的 CPU 性能、內存和磁盤使用情況,并根據需要隨時添加更多視圖和操作。

如果你已經使用 Appsmith,你還可以直接導入 示例應用程序 并開始使用。

Appsmith

Appsmith 是一個開源的 低代碼 應用構建工具,幫助開發人員輕松快速地構建內部應用,如儀表盤和管理面板。它是一個用于儀表盤的很好選擇,并減少了傳統編碼方法所需的時間和復雜性。

在此示例的儀表盤中,我顯示以下統計信息:

  • CPU
  • 占用百分比
  • 頻率或時鐘速度
  • 計數
  • 溫度
  • 內存
  • 占用百分比
  • 可用內存百分比
  • 總內存
  • 空閑內存
  • 磁盤
  • 磁盤使用百分比
  • 絕對磁盤空間使用量
  • 可用磁盤空間
  • 總磁盤空間

創建一個端點

你需要一種從樹莓派獲取這些數據并傳遞給 Appsmith 的方法。psutil 是一個用于監控和分析的 Python 庫,而 Flask-RESTful 是一個創建 REST API 的 Flask 擴展。

Appsmith 每隔幾秒鐘調用 REST API 以自動刷新數據,并以 JSON 對象作為響應,其中包含所有所需的統計信息,如下所示:

{ "cpu_count": 4,
"cpu_freq": [
600.0,
600.0,
1200.0 ],
"cpu_mem_avail": 463953920,
"cpu_mem_free": 115789824,
"cpu_mem_total": 971063296,
"cpu_mem_used": 436252672,
"cpu_percent": 1.8,
"disk_usage_free": 24678121472,
"disk_usage_percent": 17.7,
"disk_usage_total": 31307206656,
"disk_usage_used": 5292728320,
"sensor_temperatures": 52.616 }

1、設置 REST API

如果你的樹莓派尚未安裝 Python,請在樹莓派上打開終端并運行此安裝命令:

$ sudo apt install python3

現在為你的開發設置一個 Python 虛擬環境

$ python -m venv PiData

接下來,激活該環境。你必須在重新啟動樹莓派后執行此操作。

$ source PiData/bin/activate
$ cd PiData

為了安裝 Flask、Flask-RESTful 和以后需要的依賴項,請在你的 Python 虛擬環境中創建一個名為 requirements.txt 的文件,并將以下內容添加到其中:

flask
flask-restful
gunicorn

保存文件,然后使用 pip 一次性安裝它們。你必須在重新啟動樹莓派后執行此操作。

(PyData)$ python -m pip install -r requirements.txt

接下來,創建一個名為 pi_stats.py 的文件來存放使用 psutil 檢索樹莓派系統統計信息的邏輯。將以下代碼粘貼到 pi_stats.py 文件中:

from flask import Flask
from flask_restful import Resource, Api
import psutil
app = Flask(__name__)
api = Api(app)
class PiData(Resource):
    def get(self):
        return "RPI Stat dashboard"
api.add_resource(PiData, '/get-stats')
if __name__ == '__main__':
    app.run(debug=True)

這段代碼的作用如下:

  • 使用 app = Flask(name) 來定義嵌套 API 對象的應用程序。
  • 使用 Flask-RESTful 的 API 方法 來定義 API 對象。
  • 在 Flask-RESTful 中將 PiData 定義為具體的 Resource 類 ,以公開每個支持的 HTTP 方法。
  • 使用 api.add_resource(PiData, '/get-stats') 將資源 PiData 附加到 API 對象 api
  • 每當你訪問 URL /get-stats 時,將返回 PiData 作為響應。

2、使用 psutil 讀取統計信息

要從你的樹莓派獲取統計信息,你可以使用 psutil 提供的這些內置函數:

  • cpu_percentagecpu_countcpu_freq 和 sensors_temperatures 函數分別用于獲取 CPU 的占用百分比、計數、時鐘速度和溫度。sensors_temperatures 報告了與樹莓派連接的所有設備的溫度。要僅獲取 CPU 的溫度,請使用鍵 cpu-thermal
  • virtual_memory 函數可返回總內存、可用內存、已使用內存和空閑內存的統計信息(以字節為單位)。
  • disk_usage 函數可返回總磁盤空間、已使用空間和可用空間的統計信息(以字節為單位)。

將所有函數組合到一個 Python 字典中的示例如下:

system_info_data = {
'cpu_percent': psutil.cpu_percent(1),
'cpu_count': psutil.cpu_count(),
'cpu_freq': psutil.cpu_freq(),
'cpu_mem_total': memory.total,
'cpu_mem_avail': memory.available,
'cpu_mem_used': memory.used,
'cpu_mem_free': memory.free,
'disk_usage_total': disk.total,
'disk_usage_used': disk.used,
'disk_usage_free': disk.free,
'disk_usage_percent': disk.percent,
'sensor_temperatures': psutil.sensors_temperatures()['cpu-thermal'][0].current,
}

下一節將使用該字典。

3、從 Flask-RESTful API 獲取數據

為了在 API 響應中看到來自樹莓派的數據,請更新 pi_stats.py 文件,將字典 system_info_data 包含在 PiData 類中:

from flask import Flask
from flask_restful import Resource, Api
import psutil
app = Flask(__name__)
api = Api(app)
class PiData(Resource):
    def get(self):
        memory = psutil.virtual_memory()
        disk = psutil.disk_usage('/')
        system_info_data = {
            'cpu_percent': psutil.cpu_percent(1),
            'cpu_count': psutil.cpu_count(),
            'cpu_freq': psutil.cpu_freq(),
            'cpu_mem_total': memory.total,
            'cpu_mem_avail': memory.available,
            'cpu_mem_used': memory.used,
            'cpu_mem_free': memory.free,
            'disk_usage_total': disk.total,
            'disk_usage_used': disk.used,
            'disk_usage_free': disk.free,
            'disk_usage_percent': disk.percent,
            'sensor_temperatures': psutil.sensors_temperatures()['cpu-thermal'][0].current, }
    return system_info_data
api.add_resource(PiData, '/get-stats')
if __name__ == '__main__':
    app.run(debug=True)

你的腳本已經就緒,下面運行 PiData.py

$ python PyData.py
 * Serving Flask app "PiData" (lazy loading)
 * Environment: production
 WARNING: This is a development server. Do not run this in a production environment.
 * Debug mode: on
 * Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!

你有了一個可以工作的 API。

4、將 API 提供給互聯網

你可以在本地網絡中與 API 進行交互。然而,要在互聯網上訪問它,你必須在防火墻中打開一個端口,并將傳入的流量轉發到由 Flask 提供的端口。然而,正如你的測試輸出建議的那樣,在 Flask 中運行 Flask 應用程序僅適用于開發,而不適用于生產。為了安全地將 API 提供給互聯網,你可以使用安裝過程中安裝的 gunicorn 生產服務器。

現在,你可以啟動 Flask API。每次重新啟動樹莓派時都需要執行此操作。

$ gunicorn -w 4 'PyData:app'
Serving on http://0.0.0.0:8000

要從外部世界訪問你的樹莓派,請在網絡防火墻中打開一個端口,并將流量定向到你樹莓派的 IP 地址,端口為 8000。

首先,獲取樹莓派的內部 IP 地址:

$ ip addr show | grep inet

內部 IP 地址通常以 10 或 192 或 172 開頭。

接下來,你必須配置防火墻。通常,你從互聯網服務提供商(ISP)獲取的路由器中嵌入了防火墻。通常,你可以通過網絡瀏覽器訪問家用路由器。路由器的地址有時會打印在路由器的底部,它以 192.168 或 10 開頭。不過,每個設備都不同,因此我無法告訴你需要點擊哪些選項來調整設置。關于如何配置防火墻的完整描述,請閱讀 Seth Kenlon 的文章 《打開端口并通過你的防火墻路由流量》。

或者,你可以使用 localtunnel 來使用動態端口轉發服務。

一旦你的流量到達樹莓派,你就可以查詢你的 API:

$ curl https://example.com/get-stats
{
   "cpu_count": 4,
   "cpu_freq": [
      600.0,
      600.0,
      1200.0 ],
   "cpu_mem_avail": 386273280,
   ...

如果你已經執行到這一步,那么最困難的部分已經過去了。

5、重復步驟

如果你重新啟動了樹莓派,你必須按照以下步驟進行操作:

  • 使用 source 重新激活 Python 環境
  • 使用 pip 刷新應用程序的依賴項
  • 使用 gunicorn 啟動 Flask 應用程序

你的防火墻設置是持久的,但如果你使用了 localtunnel,則必須在重新啟動后啟動新的隧道。

如果你愿意,可以自動化這些任務,但那是另一個教程的內容。本教程的最后一部分是在 Appsmith 上構建一個用戶界面,使用拖放式小部件和一些 JavaScript,將你的樹莓派數據綁定到用戶界面。相信我,從現在開始很容易!

在 Appsmith 上構建儀表盤

硬件監控儀表盤硬件監控儀表盤

要制作一個像這樣的儀表盤,你需要將公開的 API 端點連接到 Appsmith,使用 Appsmith 的小部件庫構建用戶界面,并將 API 的響應綁定到小部件上。如果你已經使用 Appsmith,你可以直接導入 示例應用程序 并開始使用。

如果你還沒有,請 注冊 一個免費的 Appsmith 帳戶。或者,你可以選擇 自托管 Appsmith

將 API 作為 Appsmith 數據源連接

登錄到你的 Appsmith 帳戶。

  • 在左側導航欄中找到并點擊 “查詢或 JSQUERIES/JS” 旁邊的 “+” 按鈕。
  • 點擊 “創建一個空白 APICreate a blank API”。
  • 在頁面頂部,將你的項目命名為 “PiData”。
  • 獲取你的 API 的 URL。如果你使用的是 localtunnel,則是一個 localtunnel.me 地址,總是在末尾添加 /get-stats 以獲取統計數據。將其粘貼到頁面的第一個空白字段中,然后點擊 “RUN” 按鈕。

確保在 “響應Response” 面板中看到成功的響應。

Appsmith 界面Appsmith 界面

構建用戶界面

Appsmith 的界面非常直觀,但如果你感到迷失,我建議你查看 在 Appsmith 上構建你的第一個應用程序 教程。

對于標題,將 “文本Text”、“圖像Image” 和 “分隔線Divider” 小部件拖放到畫布上。將它們排列如下:

設置項目標題設置項目標題

“文本Text” 小部件包含你頁面的實際標題。鍵入比“Raspberry Pi Stats”更酷的內容。

“圖像Image” 小部件用于展示儀表盤的獨特標志。你可以使用你喜歡的任何標志。

使用 “開關Switch” 小部件來切換實時數據模式。在 “屬性Property” 面板中進行配置,以從你構建的 API 獲取數據。

對于主體部分,使用來自左側的小部件庫的以下小部件創建一個 CPU 統計信息區域,使用以下小部件:

  • 進度條Progress Bar
  • 統計框Stat Box
  • 圖表Chart

對于內存和磁盤統計信息部分,重復相同的步驟。磁盤統計信息部分不需要圖表,但如果你能找到用途,那也可以使用它。

你的最終小部件布局應該類似于以下:

Appsmith 中的屬性設置Appsmith 中的屬性設置

最后一步是將 API 的數據綁定到你的小部件上。

將數據綁定到小部件上

返回到畫布,并在三個類別的部分中找到你的小部件。首先設置 CPU 統計信息。

要將數據綁定到 “進度條Progress Bar” 小部件:

  • 單擊 “進度條Progress Bar” 小部件,以打開右側的 “屬性Property” 面板。
  • 查找 “進度Progress” 屬性。
  • 單擊 “JS” 按鈕以激活 JavaScript。
  • 在 “進度Progress” 字段中粘貼 {{PiData.data.cpu_percent ?? 0}}。此代碼引用了你的 API 的數據流,名為 PiData。Appsmith 將響應數據緩存在 PiData 的 .data 運算符內。鍵 cpu_percent 包含了 Appsmith 用來顯示 CPU 利用率百分比的數據。
  • 在 “進度條Progress Bar” 小部件下方添加一個 “文本Text” 小部件作為標簽。

在配置屏幕中綁定數據在配置屏幕中綁定數據

在 CPU 部分有三個 “統計框Stat Box” 小部件。將數據綁定到每個小部件的步驟與綁定 “進度條Progress Bar” 小部件的步驟完全相同,只是你需要從 .data 運算符中綁定不同的數據屬性。按照相同的步驟進行操作,但有以下例外:

  • 使用 {{${PiData.data.cpu_freq[0]} ?? 0 }} 來顯示時鐘速度。
  • 使用 {{${PiData.data.cpu_count} ?? 0 }} 來顯示 CPU 計數。
  • 使用 {{${(PiData.data.sensor_temperatures).toPrecision(3)} ?? 0 }} 來顯示 CPU 溫度數據。

如果一切順利,你將得到一個漂亮的儀表盤,如下所示:

樹莓派的儀表盤樹莓派的儀表盤

CPU 利用率趨勢圖

你可以使用 “圖表Chart” 小部件將 CPU 利用率顯示為趨勢線,并使其隨時間自動更新。

首先,單擊小部件,在右側找到 “圖表類型Chart Type” 屬性,并將其更改為 “折線圖LINE CHART”。為了顯示趨勢線,需要將 cpu_percent 存儲在數據點數組中。你的 API 目前將其作為單個時間數據點返回,因此可以使用 Appsmith 的 storeValue 函數(Appsmith 內置的 setItem 方法的一個原生實現)來獲取一個數組。

在 “查詢或 JSQUERIES/JS” 旁邊單擊 “+” 按鈕,并將其命名為 “utils”。

將以下 JavaScript 代碼粘貼到 “代碼Code” 字段中:

export default {
  getLiveData: () => {
  //When switch is on:
    if (Switch1.isSwitchedOn) {
      setInterval(() => {
        let utilData = appsmith.store.cpu_util_data;
        PiData.run()
          storeValue("cpu_util_data", [...utilData, {
            x: PiData.data.cpu_percent,
            y: PiData.data.cpu_percent
          }]);           
        }, 1500, 'timerId')
      } else {
    clearInterval('timerId');
  }
},
initialOnPageLoad: () => {
  storeValue("cpu_util_data", []);
  }
}

為了初始化 Store,你在 initialOnPageLoad 對象中創建了一個 JavaScript 函數,并將 storeValue 函數放在其中。

你使用 storeValue("cpu_util_data", []); 將 cpu_util_data 中的值存儲到 storeValue 函數中。此函數在頁面加載時運行。

到目前為止,每次刷新頁面時,代碼都會將 cpu_util_data 中的一個數據點存儲到 Store 中。為了存儲一個數組,你使用了 x 和 y 的下標變量,兩者都存儲了來自 cpu_percent 數據屬性的值。

你還希望通過設定存儲值之間的固定時間間隔來自動存儲這些數據。當執行 setInterval 函數時:

  • 獲取存儲在 cpu_util_data 中的值。
  • 調用 API PiData
  • 使用返回的最新 cpu_percent 數據將 cpu_util_data 更新為 x 和 y 變量。
  • 將 cpu_util_data 的值存儲在鍵 utilData 中。
  • 僅當設置為自動執行函數時,才重復執行步驟 1 到 4。你使用 Switch 小部件將其設置為自動執行,這就解釋了為什么有一個 getLiveData 父函數。

在 “設置Settings” 選項卡中,找到對象中的所有父函數,并在 “頁面加載時運行RUN ON PAGE LOAD” 選項中將 initialOnPageLoad 設置為 “Yes(是)”。

設置頁面加載時要執行的函數設置頁面加載時要執行的函數

現在刷新頁面進行確認。

返回到畫布。單擊 “圖表Chart” 小部件,并找到 “圖表數據Chart Data” 屬性。將綁定 {{ appsmith.store.disk_util_data }} 粘貼到其中。這樣,如果你自己多次運行對象 utils,就可以獲得圖表數據。要自動運行此操作:

  • 查找并單擊儀表盤標題中的 “實時數據開關Live Data Switch” 小部件。
  • 查找 onChange 事件。
  • 將其綁定到 {{ utils.getLiveData() }}。JavaScript 對象是 utils,而 getLiveData 是在你切換開關時激活的函數,它會從你的樹莓派獲取實時數據。但是還有其他實時數據,因此同一開關也適用于它們。繼續閱讀以了解詳情。

將數據綁定到內存和磁盤部分的小部件與你在 CPU 統計信息部分所做的方式類似。

對于內存部分,綁定如下所示:

  • 進度條中的綁定為:{{( PiData.data.cpu_mem_avail/1000000000).toPrecision(2) \* 100 ?? 0 }}
  • 三個統計框小部件的綁定分別為:{{ \${(PiData.data.cpu_mem_used/1000000000).toPrecision(2)} ?? 0 }} GB{{ \${(PiData.data.cpu_mem_free/1000000000).toPrecision(2)} ?? 0}} GB 和 {{ \${(PiData.data.cpu_mem_total/1000000000).toPrecision(2)} ?? 0 }} GB

對于磁盤部分,進度條和統計框小部件的綁定分別變為:

  • 進度條的綁定為:{{ PiData.data.disk_usage_percent ?? 0 }}
  • 三個統計框小部件的綁定分別為:{{ \${(PiData.data.disk_usage_used/1000000000).toPrecision(2)} ?? 0 }} GB{{ \${(PiData.data.disk_usage_free/1000000000).toPrecision(2)} ?? 0 }} GB 和 {{ \${(PiData.data.disk_usage_total/1000000000).toPrecision(2)} ?? 0 }} GB

這里的圖表需要更新你為 CPU 統計信息創建的 utils 對象,使用 storeValue 鍵名為 disk_util_data,嵌套在 getLiveData 下面,其邏輯與 cpu_util_data 類似。對于磁盤利用率圖表,我們存儲的 disk_util_data 的邏輯與 CPU 利用率趨勢圖的邏輯相同。

export default {
  getLiveData: () => {
  //When switch is on:
    if (Switch1.isSwitchedOn) {
      setInterval(() => {
       const cpuUtilData = appsmith.store.cpu_util_data;
       const diskUtilData = appsmith.store.disk_util_data;                   
       PiData.run();       
       storeValue("cpu_util_data", [...cpuUtilData, { x: PiData.data.cpu_percent,y: PiData.data.cpu_percent }]);
       storeValue("disk_util_data", [...diskUtilData, { x: PiData.data.disk_usage_percent,y: PiData.data.disk_usage_percent }]);
    }, 1500, 'timerId')
  } else {
    clearInterval('timerId');
  }
},
  initialOnPageLoad: () => {
    storeValue("cpu_util_data", []);
    storeValue("disk_util_data", []);
  }
}

通過使用 utils JavaScript 對象在打開和關閉真實數據開關時觸發的數據流可視化如下所示:

切換切換

在打開實時數據開關時,圖表會變成這樣:

顯示實時數據顯示實時數據

整體上,它既漂亮,又簡約,而且非常有用。

祝你使用愉快!

當你對 psutils、JavaScript 和 Appsmith 更加熟悉時,我相信你會發現可以輕松無限地調整你的儀表板,實現非常酷的功能,例如:

  • 查看先前一周、一個月、一個季度、一年或根據你的樹莓派數據允許的任何自定義范圍的趨勢
  • 為任何統計數據的閾值違規構建報警機制
  • 監控連接到你的樹莓派的其他設備
  • 將 psutils 擴展到另一臺安裝有 Python 的計算機上
  • 使用其他庫監控你家庭或辦公室的網絡
  • 監控你的花園
  • 跟蹤你自己的生活習慣

在下一個令人興奮的項目中,祝你玩得愉快!

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2011-12-21 14:15:08

JavaJFreeChart

2023-10-31 16:34:19

2020-09-11 09:18:07

PythonPython包開發

2018-05-25 08:44:22

樹莓派PythonMySQL

2023-03-07 11:37:02

Python指標儀表板

2022-07-05 16:21:44

繪制表盤鴻蒙

2019-03-23 19:33:14

樹莓派Linux操作系統

2021-06-30 07:34:21

SpringCloudHystrix 監控

2022-03-16 19:15:32

PostgreSQL日志Kafka

2021-04-24 23:26:12

Python儀表盤存儲

2022-08-29 00:20:48

Render樹莓派物聯網

2021-01-29 15:00:04

Zabbix5.2Grafana儀表盤

2020-07-16 21:00:05

樹莓派Kubernetes集Linux

2014-03-19 10:34:54

Facebook開源數據中心

2012-04-11 12:17:02

iPad

2017-03-03 10:40:41

2020-04-16 20:42:16

樹莓派Rocket.ChatLinux

2025-07-11 02:00:00

2022-06-19 20:48:06

樹莓派Linux

2024-02-08 09:27:26

點贊
收藏

51CTO技術棧公眾號

亚洲成人资源| 91蝌蚪精品视频| 中文字幕一区二区三| 97se国产在线视频| 黄色片视频网站| 在线日韩一区| 日韩欧美亚洲国产另类| 亚洲精品国产第一综合99久久| 国产99久久精品一区二区永久免费 | 国产无码精品在线播放| 视频在线观看免费影院欧美meiju| 亚洲国产精品久久久久秋霞影院 | 五月婷婷激情在线| 男女性色大片免费观看一区二区 | 中文字幕剧情在线观看一区| 亚洲精品成人电影| 免费不卡在线视频| 91tv亚洲精品香蕉国产一区7ujn| 在线视频这里只有精品| 男人的天堂久久| 日韩一级片在线播放| 亚洲人成无码www久久久| 人人超在线公开视频| 久久久久一区二区三区四区| www.一区二区三区| 一本色道久久综合亚洲| 999亚洲国产精| 美日韩精品免费观看视频| 国产在线观看h| 亚洲精品aⅴ| 69成人精品免费视频| 久久九九国产视频| 日韩欧美精品一区二区三区| 亚洲综合视频在线| 最近中文字幕免费mv| 阿v免费在线观看| 国产午夜精品在线观看| 九九九久久久| 十八禁一区二区三区| 国产传媒一区在线| 91在线观看免费网站| 波多野结衣在线电影| 男人的天堂亚洲在线| 91精品国产自产91精品| 国产精品6666| 亚洲黄色影院| 国外成人性视频| xxxxxx国产| 怡红院精品视频在线观看极品| 久久精品久久久久久国产 免费| 国产毛片欧美毛片久久久| 久久99视频| 亚洲人线精品午夜| wwwwww日本| 国产精品片aa在线观看| 亚洲欧美色图片| 一区二区黄色片| 精品少妇av| 中文字幕av一区二区| 国产精品www爽爽爽| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲天堂成人在线视频| 日本xxxxxxxxx18| 欧美精品尤物在线观看| 丝袜美腿精品国产二区| 女性裸体视频网站| 欧美高清不卡| 高清欧美性猛交xxxx| 国产主播在线播放| 国产日产高清欧美一区二区三区| 欧美中文在线免费| 国产一卡二卡三卡| 精品一区二区三区在线观看| 91久久中文字幕| 亚洲高清在线观看视频| av不卡免费电影| 蜜桃视频成人| 午夜在线免费观看视频| 亚洲精品五月天| 少妇高潮毛片色欲ava片| 欧美大片免费| 69堂国产成人免费视频| 亚洲自拍偷拍精品| 免费国产自久久久久三四区久久| 最近2019年好看中文字幕视频| 中文字幕电影av| 亚洲三级国产| 国产精品欧美日韩| 国产xxxxxx| 久久老女人爱爱| 异国色恋浪漫潭| 超碰激情在线| 欧美欧美欧美欧美| 中文在线观看免费视频| 精品国产中文字幕第一页| 久久久精品999| 影音先锋亚洲天堂| 久久爱www久久做| 国产精品一区二区欧美黑人喷潮水| 亚洲av成人精品毛片| 中文av字幕一区| www.国产在线视频| 成人亚洲免费| 日韩高清免费在线| 国产精品精品软件男同| 亚洲永久免费| 成人激情在线观看| 欧美欧美欧美| 亚洲精品视频在线| 91香蕉视频导航| 欧美日韩导航| 欧美成人国产va精品日本一级| 国产精品久久久久久99| 国产精品资源在线看| 日韩电影免费观看在| 成人性生交大片免费看网站| 欧美日韩不卡在线| 日本高清www| 国产精品www.| 成人黄色在线免费| 国产女主播在线写真| 亚洲高清不卡在线观看| 久久久福利影院| 不卡av一区二区| 青青在线视频一区二区三区| 亚洲精品免费在线观看视频| 日韩久久一区二区| 在线观看高清免费视频| 国产99精品| 欧美亚洲伦理www| 国精品人妻无码一区二区三区喝尿| 国产精品福利在线播放| 香蕉视频网站入口| 伊人成综合网伊人222| 91精品国产沙发| 日韩性xxxx| 午夜激情久久久| 99久久久无码国产精品性波多| 一区二区三区国产精华| 国产在线视频91| √新版天堂资源在线资源| 日韩欧美高清在线视频| 超碰男人的天堂| 中文一区在线| 久久久久久久久久久一区| av最新在线| 日韩av网址在线观看| 日本少妇xxxx动漫| 成人高清在线视频| 久久视频这里有精品| 精品欠久久久中文字幕加勒比| 欧美激情videos| 人妻妺妺窝人体色www聚色窝 | 91偷拍与自偷拍精品| 99在线免费视频观看| 国产乱人伦丫前精品视频| 久久久久久久成人| 五十路在线观看| 日韩欧美国产激情| 五月婷婷六月香| 精品在线一区二区三区| 免费观看黄色大片| 成人动漫视频| 欧美专区第一页| 二区三区在线| 欧美精品久久一区二区三区| 久久日免费视频| 国产呦精品一区二区三区网站| 成人在线观看毛片| 老牛影视av一区二区在线观看| 日本aⅴ大伊香蕉精品视频| 国产黄色片在线观看| 欧美日韩国产色站一区二区三区| 成人在线观看小视频| 国产白丝精品91爽爽久久| 久久久久久久久久久99| 精品国产网站| 91国产在线播放| 麻豆免费在线| 最近的2019中文字幕免费一页| 国产视频www| 精品久久久久久| 2019男人天堂| 国产老妇另类xxxxx| 国产一区二区视频播放| 国产成人影院| 97人人做人人人难人人做| 在线播放高清视频www| 日韩在线视频二区| 香蕉av一区二区三区| 欧美日韩一区二区欧美激情| 久久99久久久| 中文乱码免费一区二区| 五月天丁香社区| 蜜桃精品视频在线| 日韩中字在线观看| 色欧美自拍视频| 久久99精品久久久久子伦| 欧美黄页免费| 91精品国产99| 图片区小说区亚洲| 亚洲欧美另类人妖| 国产高清不卡视频| 91国偷自产一区二区三区成为亚洲经典 | 欧美一二三四五区| 爱情电影网av一区二区| 日本欧美中文字幕| 新版中文在线官网| 丝袜亚洲另类欧美重口| 天堂av在线播放| 欧美v亚洲v综合ⅴ国产v| 无码人妻丰满熟妇奶水区码| 亚洲一区二区三区在线| 精品视频第一页| 99久久er热在这里只有精品66| 亚洲a级黄色片| 老牛嫩草一区二区三区日本 | 日韩一区二区在线看| 91在线视频免费播放| 亚洲成人av福利| 美女的奶胸大爽爽大片| 国产精品乱码一区二三区小蝌蚪| 毛片网站免费观看| 成人午夜电影久久影院| 亚洲网中文字幕| 久久精品国产**网站演员| 国产第一页视频| 国产日韩高清一区二区三区在线| 男人添女人下部视频免费| 欧美freesextv| 视频在线99| 国产一区二区三区四区五区| 精品国产一区二区三区四区精华| 91在线一区| 成人免费视频网站| 日韩三级久久| av电影成人| 日韩一区二区三区精品| 成人性生交大片免费看视频直播| 国产欧美自拍| 国产精品视频一| 成人在线黄色| 国产精品老牛影院在线观看| 在线国产成人影院| 国产成人精品久久久| 台湾佬成人网| 国产精品福利网站| 福利一区二区| 国产日韩在线看| 高清不卡一区| 亚洲在线视频观看| 蜜桃精品视频| 国产精品区二区三区日本| 99香蕉久久| 久久精彩视频| 狠狠色丁香婷婷综合影院| 日韩三级电影| 99久久精品费精品国产| 欧美少妇在线观看| 黄色亚洲免费| 国产精品宾馆在线精品酒店| 免费在线播放第一区高清av| 韩国日本美国免费毛片| 麻豆精品一区二区综合av| 涩多多在线观看| 成人在线视频一区| 欲求不满的岳中文字幕| 久久久综合九色合综国产精品| 免费观看a级片| 亚洲天堂免费在线观看视频| 国产亚洲精品成人| 欧美日韩精品在线播放| 五月激情丁香网| 555夜色666亚洲国产免| 女人18毛片一区二区三区| 亚洲精品中文字| 欧美69xxx| 97久久精品在线| 成人精品高清在线视频| 51国偷自产一区二区三区的来源 | 久久精品超碰| 成人欧美一区二区三区在线观看 | 国产三级按摩推拿按摩| 精品区一区二区| 青青青草原在线| 精品国产一区二区三区久久久狼 | 国产欧美一区二区三区久久| 91麻豆精品激情在线观看最新 | 免费一级特黄3大片视频| 亚洲免费观看高清完整版在线| 久久精品国产亚洲av麻豆色欲| 日本高清视频一区二区| 精品国精品国产自在久不卡| 精品亚洲精品福利线在观看| 国产在线1区| 欧美亚洲国产日韩2020| 国产一区二区三区免费观看在线 | 97在线观看免费观看高清| 欧美丰满片xxx777| 日本精品另类| 国产精品一区二区欧美黑人喷潮水| 精品国产一区二区三区小蝌蚪| 国产av熟女一区二区三区| 日韩成人精品在线观看| 91精品又粗又猛又爽| 国产精品乱子久久久久| 青草视频在线观看免费| 3d动漫精品啪啪一区二区竹菊| 日韩一二三四| 欧美激情xxxx| 欧美v亚洲v综合v国产v仙踪林| 久久大片网站| 欧美精品国产一区| 超碰在线公开97| 久久精品一区八戒影视| 国产成人在线免费观看视频| 7777精品伊人久久久大香线蕉超级流畅 | 国产美女久久| 久久精品国产精品青草色艺| 99re6这里只有精品| 亚洲精品无码久久久久久| 国产a视频精品免费观看| 国产中文字幕久久| 在线观看欧美精品| 人成免费电影一二三区在线观看| 久久久久久久999| 看亚洲a级一级毛片| 吴梦梦av在线| 蜜臀av国产精品久久久久| 性欧美精品中出| 日本精品一区二区三区高清| 天天干在线观看| 国语自产精品视频在线看| 中文字幕日韩高清在线| 先锋影音男人资源| 久久99久久99| 肉色超薄丝袜脚交69xx图片| 欧美在线一二三四区| 精品99又大又爽又硬少妇毛片| 2019中文字幕在线观看| 欧美挤奶吃奶水xxxxx| 欧美午夜性视频| www.欧美色图| 日韩免费av片| 日韩精品一区二区三区第95| 密臀av在线播放| 麻豆久久久av免费| 久久久久久亚洲精品杨幂换脸| 精品少妇人妻一区二区黑料社区| 日韩欧美精品在线观看| 免费人成在线观看网站| 国产不卡在线观看| 欧美日韩精品一区二区视频| 天天操天天爱天天爽| 欧美国产激情二区三区| 91av国产精品| 精品中文字幕在线2019| 风间由美性色一区二区三区四区| 免费无码毛片一区二三区| 91香蕉国产在线观看软件| 天堂网视频在线| 日韩在线观看免费高清| 精品国产三区在线| 野外做受又硬又粗又大视频√| 91麻豆国产香蕉久久精品| 亚洲综合图片网| 久久精品久久精品亚洲人| 99久久免费精品国产72精品九九| 免费看国产曰批40分钟| 久久精品日产第一区二区三区高清版 | 少妇av一区二区| 欧美一级淫片videoshd| 教室别恋欧美无删减版| 性欧美在线视频| 亚洲大片精品永久免费| 国产精品秘入口| 91黄色国产视频| 免播放器亚洲| 国产黄色录像片| 亚洲国产精品va在线| 成人看片网页| 免费观看国产视频在线| 91网站在线观看视频| 一区二区不卡视频在线观看| 欧美激情在线观看| 欧美日韩中文一区二区| 国产欧美精品一二三| 精品magnet| 日本蜜桃在线观看| 国产一区在线免费| 美女视频免费一区| 日韩黄色精品视频| 色婷婷久久一区二区| 欧美黑人巨大videos精品| 一级黄色特级片| 欧美日韩免费区域视频在线观看| 嫩草香蕉在线91一二三区| 久久久com| 国产成人啪免费观看软件| 国产成人无码专区|