日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python 全栈开发,Day132(玩具管理页面,控制玩具通讯录,基于请求的好友关系建立)...

發(fā)布時間:2023/11/27 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 全栈开发,Day132(玩具管理页面,控制玩具通讯录,基于请求的好友关系建立)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

先下載github代碼,下面的操作,都是基于這個版本來的!

https://github.com/987334176/Intelligent_toy/archive/v1.5.zip

注意:由于涉及到版權(quán)問題,此附件沒有圖片和音樂。請參考鏈接,手動采集一下!

請參考鏈接:

https://www.cnblogs.com/xiao987334176/p/9647993.html#autoid-3-4-0

?

一、玩具管理頁面

點擊下面的標簽,頁面還沒有反應(yīng)。

?

點擊之后,需要進入玩具管理頁面!

進入HBuilder項目MyApp,新建文件toy_info.html

?

修改?toy_info.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">玩具詳情</h1></header><div class="mui-content"><div class="mui-row" style="text-align: center;"><img src="" id="avatar" style="width: 300px;height: 300px;border-radius: 50%;" /></div><ul class="mui-table-view"><li class="mui-table-view-cell">玩具名稱 :<span id="toy_name"></span></li><li class="mui-table-view-cell">所屬主人 :<span id="baby_name"></span></li><li class="mui-table-view-cell">設(shè)備編號 :<span id="device_id"></span></li></ul></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()var Sdata = null;mui.plusReady(function() {Sdata = plus.webview.currentWebview();mui.post(window.serv + "/toy_info", {toy_id: Sdata.toy_id},function(data) {console.log(JSON.stringify(data));document.getElementById("avatar").src = "avatar/" + data.data.avatar;document.getElementById("toy_name").innerText = data.data.toy_name;document.getElementById("baby_name").innerText = data.data.baby_name;document.getElementById("device_id").innerText = data.data.device_id;});})</script></html>
View Code

?

修改?toy_manager.html,點擊時,打開玩具管理頁面

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">管理我的玩具</h1></header><div class="mui-content"><ul class="mui-table-view" id="toy_list"><li class="mui-table-view-cell mui-media"><a id="add_toy"><img class="mui-media-object mui-pull-left" src="images/add.png"><div class="mui-media-body">你還沒有玩具<p class="mui-ellipsis">點擊此處掃描二維碼添加玩具</p></div></a></li></ul></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init();mui.plusReady(function(){// 發(fā)送POST請求,訪問玩具列表mui.post(window.serv + "/toy_list",{user_id:plus.storage.getItem("user")},function(data){console.log(JSON.stringify(data));// for循環(huán)玩具列表for (var i = 0; i < data.data.length; i++) {// 調(diào)用自定義函數(shù),渲染玩具列表create_content(data.data[i]);}})});function create_content(content) {  //玩具列表var litag = document.createElement("li");litag.className = "mui-table-view-cell mui-media";var atag = document.createElement("a");atag.id = content._id;atag.onclick = function() {console.log(this.id);open_toy_info(this.id);  //打開玩具管理頁面}var imgtag = document.createElement("img");imgtag.className = "mui-media-object mui-pull-left";imgtag.style = "border-radius: 50%;width: 45px;height: 45px; "imgtag.src = "avatar/" + content.avatar;var divtag = document.createElement("div");divtag.className = "mui-media-body";divtag.innerText = content.baby_name;var ptag = document.createElement("p");ptag.className = "mui-ellipsis";ptag.innerText = content.toy_name;litag.appendChild(atag);atag.appendChild(imgtag);atag.appendChild(divtag);divtag.appendChild(ptag);document.getElementById("toy_list").appendChild(litag);}document.getElementById("add_toy").addEventListener("tap", function() {mui.openWindow({url: "qrcode.html",id: "qrcode.html",})});function open_toy_info(toy_id) {  //打開玩具管理頁面mui.openWindow({url: "toy_info.html",id: "toy_info.html",extras: {toy_id: toy_id}})}</script></html>
View Code

?

進入flask后端,修改?serv-->toys.py,增加接口

from flask import Blueprint, request, jsonify
from setting import MONGO_DB
from setting import RET
from bson import ObjectIdtoy = Blueprint("toy", __name__)@toy.route("/toy_list", methods=["POST"])
def toy_list():  # 玩具列表user_id = request.form.get("user_id")  # 用戶id# 查看用戶信息user_info = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})bind_toy = user_info.get("bind_toy")  # 獲取綁定的玩具bind_toy_id = []  # 玩具列表for toy_id in bind_toy:  # 獲取玩具列表中的所有玩具id
        bind_toy_id.append(ObjectId(toy_id))# 一次性查詢多個玩具toys_list = list(MONGO_DB.toys.find({"_id": {"$in": bind_toy_id}}))for index,item in enumerate(toys_list):# 將_id轉(zhuǎn)換為字符串toys_list[index]["_id"] = str(item.get("_id"))RET["code"] = 0RET["msg"] = ""RET["data"] = toys_listreturn jsonify(RET)@toy.route("/device_toy_id", methods=["POST"])
def device_toy_id():  # 驗證設(shè)備idRET["code"] = 0RET["msg"] = "開機成功"RET["data"] = {}device_id = request.form.get("device_id")  # 獲取設(shè)備id# 判斷設(shè)備id是否在設(shè)備表中if MONGO_DB.devices.find_one({"device_id": device_id}):# 查詢設(shè)備id是否在玩具表中toy_info = MONGO_DB.toys.find_one({"device_id": device_id})if toy_info:# RET添加鍵值,獲取玩具idRET["data"]["toy_id"] = str(toy_info.get("_id"))# 音頻文件RET["data"]["audio"] = "success.mp3"return jsonify(RET)else:# 已授權(quán)的設(shè)備,但是沒有綁定主人RET["msg"] = "找小主人"RET["data"]["audio"] = "Nobind.mp3"return jsonify(RET)else:# 不在設(shè)備表中,說明是未授權(quán),或者是冒牌的!RET["msg"] = "聯(lián)系玩具廠"RET["data"]["audio"] = "Nodevice.mp3"return jsonify(RET)@toy.route("/toy_info", methods=["POST"])
def toy_info():  # 玩具管理頁面toy_id = request.form.get("toy_id")toy = MONGO_DB.toys.find_one({"_id":ObjectId(toy_id)})toy["_id"] = str(toy.get("_id"))RET["code"] = 0RET["msg"] = ""RET["data"] = toyreturn jsonify(RET)
View Code

?

重啟?manager.py,使用模擬器訪問,效果如下:

?

二、控制玩具通訊錄

玩具管理頁面,還需要展示 通訊錄。

修改?toy_info.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">玩具詳情</h1></header><div class="mui-content"><div class="mui-row" style="text-align: center;"><img src="" id="avatar" style="width: 300px;height: 300px;border-radius: 50%;" /></div><ul class="mui-table-view"><li class="mui-table-view-cell">玩具名稱 :<span id="toy_name"></span></li><li class="mui-table-view-cell">所屬主人 :<span id="baby_name"></span></li><li class="mui-table-view-cell">設(shè)備編號 :<span id="device_id"></span></li></ul><div class="mui-row" style="text-align: center;">玩具通訊錄</div><ul class="mui-table-view mui-grid-view" id="contacts"><li class="mui-table-view-cell mui-media mui-col-xs-3"><a id="add_friend"><img class="mui-media-object" src="images/add.png" style="border-radius: 50%;width: 75px;height: 75px;"><div class="mui-media-body">添加好友</div></a></li></ul></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()var Sdata = null;mui.plusReady(function() {Sdata = plus.webview.currentWebview();mui.post(window.serv + "/toy_info", {toy_id: Sdata.toy_id},function(data) {console.log(JSON.stringify(data));document.getElementById("avatar").src = "avatar/" + data.data.avatar;document.getElementById("toy_name").innerText = data.data.toy_name;document.getElementById("baby_name").innerText = data.data.baby_name;document.getElementById("device_id").innerText = data.data.device_id;for(var i = 0; i < data.data.friend_list.length; i++) {create_friend(data.data.friend_list[i]);}});});function create_friend(friend) {var litag = document.createElement("li");litag.className = "mui-table-view-cell mui-media mui-col-xs-3";var atag = document.createElement("a");atag.id = friend.friend_idvar imgtag = document.createElement("img");imgtag.className = "mui-media-object";imgtag.style.borderRadius = "50%";imgtag.style.width = "75px";imgtag.style.height = "75px";imgtag.src = "avatar/" + friend.friend_avatar;var divtag = document.createElement("div");divtag.innerText = friend.friend_remark;divtag.className = "mui-media-body";litag.appendChild(atag);atag.appendChild(imgtag);atag.appendChild(divtag);document.getElementById("contacts").appendChild(litag);}</script></html>
View Code

?

使用模擬器訪問,效果如下:

?

三、基于請求的好友關(guān)系建立

加好友流程圖

?

?

同意流程圖

?

修改?qrcode.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">掃描玩具二維碼</h1></header><div class="mui-content"><div style="height: 550px;" id="qr"></div></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()var Sdata = null;mui.plusReady(function() {Sdata = plus.webview.currentWebview();
//            var barcode = new plus.barcode.Barcode('qr');
//            //      plus.webview.currentWebview().append(barcode);
//            barcode.onmarked = chenggong;
//            barcode.start();chenggong(0,"864aad3ca55d9fe9bdcbef70e174fc3f")})function chenggong(type, code) {mui.post(window.serv + "/yanzheng_qr", {device_id: code},function(data) {console.log(JSON.stringify(data));mui.toast(data.msg);if(data.code == 2) {mui.back();}if(data.code == 1) {//加好友的小邏輯 跳轉(zhuǎn)到加好友頁面    if(Sdata.toy_id) {//1.玩具 添加好友 toys toysmui.openWindow({url: "add_req.html",id: "add_req.html",extras: {req_type: "toy",user_id: Sdata.toy_id,friend_id: data.data.toy_id}})} else {// 2.手機app 添加好友 users toysmui.openWindow({url: "add_req.html",id: "add_req.html",extras: {req_type: "user",user_id: plus.storage.getItem("user"),friend_id: data.data.toy_id}})}}if(data.code == 0) {//今天的邏輯 創(chuàng)建玩具 綁定用戶 成為玩具的第一個好友//1.創(chuàng)建玩具:打開創(chuàng)建玩具的頁面if(Sdata.toy_id) {mui.back()} else {mui.openWindow({url: "bind_toy.html",id: "bind_toy.html",extras: {device_id: code}})}}})}</script></html>
View Code

?

修改 toy_info.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">玩具詳情</h1></header><div class="mui-content"><div class="mui-row" style="text-align: center;"><img src="" id="avatar" style="width: 300px;height: 300px;border-radius: 50%;" /></div><ul class="mui-table-view"><li class="mui-table-view-cell">玩具名稱 :<span id="toy_name"></span></li><li class="mui-table-view-cell">所屬主人 :<span id="baby_name"></span></li><li class="mui-table-view-cell">設(shè)備編號 :<span id="device_id"></span></li></ul><div class="mui-row" style="text-align: center;">玩具通訊錄</div><ul class="mui-table-view mui-grid-view" id="contacts"><li class="mui-table-view-cell mui-media mui-col-xs-3"><a id="add_friend"><img class="mui-media-object" src="images/add.png" style="border-radius: 50%;width: 75px;height: 75px;"><div class="mui-media-body">添加好友</div></a></li></ul></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()var Sdata = null;mui.plusReady(function() {Sdata = plus.webview.currentWebview();mui.post(window.serv + "/toy_info", {toy_id: Sdata.toy_id},function(data) {console.log(JSON.stringify(data));document.getElementById("avatar").src = "avatar/" + data.data.avatar;document.getElementById("toy_name").innerText = data.data.toy_name;document.getElementById("baby_name").innerText = data.data.baby_name;document.getElementById("device_id").innerText = data.data.device_id;for(var i = 0; i < data.data.friend_list.length; i++) {create_friend(data.data.friend_list[i]);}});})function create_friend(friend) {var litag = document.createElement("li");litag.className = "mui-table-view-cell mui-media mui-col-xs-3";var atag = document.createElement("a");atag.id = friend.friend_idvar imgtag = document.createElement("img");imgtag.className = "mui-media-object";imgtag.style.borderRadius = "50%";imgtag.style.width = "75px";imgtag.style.height = "75px";imgtag.src = "avatar/" + friend.friend_avatar;var divtag = document.createElement("div");divtag.innerText = friend.friend_remark;divtag.className = "mui-media-body";litag.appendChild(atag);atag.appendChild(imgtag);atag.appendChild(divtag);document.getElementById("contacts").appendChild(litag);}document.getElementById("add_friend").addEventListener("tap", function() {mui.openWindow({url: "qrcode.html",id: "qrcode.html",extras:{toy_id:Sdata.toy_id}})})</script></html>
View Code

?

進入flask項目,修改devices.py,修改 yanzheng_qr函數(shù)

from flask import Blueprint, request, jsonify
from setting import MONGO_DB
from setting import RET
from bson import ObjectIddevs = Blueprint("devs", __name__)@devs.route("/yanzheng_qr", methods=["POST"])
def yanzheng_qr():  # 驗證二維碼device_id = request.form.get("device_id")  # 獲取設(shè)備idif MONGO_DB.devices.find_one({"device_id": device_id}):  # 從數(shù)據(jù)庫中查詢設(shè)備id# 查詢該玩具是不是已被用戶綁定toy_info = MONGO_DB.toys.find_one({"device_id": device_id})# 未綁定開啟綁定邏輯if not toy_info:RET["code"] = 0RET["msg"] = "感謝購買本公司產(chǎn)品"RET["data"] = {}# 如果被綁定加好友邏輯開啟if toy_info:RET["code"] = 1RET["msg"] = "添加好友"RET["data"] = {"toy_id": str(toy_info.get("_id"))}else:RET["code"] = 2RET["msg"] = "二貨,這不是本公司設(shè)備,快去買正版!"RET["data"] = {}return jsonify(RET)@devs.route("/bind_toy", methods=["POST"])
def bind_toy():  # 綁定玩具chat_window = MONGO_DB.chat.insert_one({})  # 插入一個空數(shù)據(jù)chat_id = chat_window.inserted_id  # 獲取聊天id
user_id = request.form.get("user_id")  # 用戶idres = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})  # 查詢用戶id是否存在
device_id = request.form.get("device_id")  # 設(shè)備idtoy_name = request.form.get("toy_name")  # 玩具的昵稱baby_name = request.form.get("baby_name")  # 小主人的名字remark = request.form.get("remark")  # 玩具主人對您的稱呼gender = request.form.get("gender")  # 性別
toy_info = {"device_id": device_id,"toy_name": toy_name,"baby_name": baby_name,"gender": gender,"avatar": "boy.jpg" if gender == 1 else "girl.jpg",# 綁定用戶"bind_user": str(res.get("_id")),# 第一個好友"friend_list": [{"friend_id": str(res.get("_id")),  # 好友id"friend_name": res.get("nickname"),  # 好友昵稱"friend_remark": remark,  # 好友稱呼"friend_avatar": res.get("avatar"),  # 好友頭像"friend_chat": str(chat_id),  # 好友聊天id
        }]}toy_res = MONGO_DB.toys.insert_one(toy_info)  # 插入玩具表數(shù)據(jù)if res.get("friend_list"):  # 判斷用戶好友列表是否為空# 追加好友res["bind_toy"].append(str(toy_res.inserted_id))res["friend_list"].append({"friend_id": str(toy_res.inserted_id),"friend_name": toy_name,"friend_remark": baby_name,"friend_avatar": toy_info.get("avatar"),"friend_chat": str(chat_id),})else:# 更新好友res["bind_toy"] = [str(toy_res.inserted_id)]res["friend_list"] = [{"friend_id": str(toy_res.inserted_id),"friend_name": toy_name,"friend_remark": baby_name,"friend_avatar": toy_info.get("avatar"),"friend_chat": str(chat_id),}]MONGO_DB.users.update_one({"_id": ObjectId(user_id)}, {"$set": res})  # 更新用戶記錄# 更新聊天表# user_list有2個值。第一個是玩具id,第2個是用戶id# 這樣,用戶和玩具就能通訊了MONGO_DB.chat.update_one({"_id": chat_id},{"$set":{"user_list":[str(toy_res.inserted_id),str(res.get("_id"))]}})RET["code"] = 0RET["msg"] = "綁定成功"RET["data"] = {}return jsonify(RET)
View Code

?

修改?serv-->friend.py,增加add_req函數(shù)

from flask import Blueprint, request, jsonify
from setting import MONGO_DB
from setting import RET
from bson import ObjectIdfri = Blueprint("fri", __name__)@fri.route("/friend_list", methods=["POST"])
def friend_list():  # 好友列表user_id = request.form.get("user_id")# 查詢用戶id信息res = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})friend_list = res.get("friend_list")  # 獲取好友列表
RET["code"] = 0RET["msg"] = ""RET["data"] = friend_listreturn jsonify(RET)@fri.route("/add_req", methods=["POST"])
def add_req():user_id = request.form.get("user_id")  # 有可能是 toy_id or user_idfriend_id = request.form.get("friend_id")  # 100%是toy_idreq_type = request.form.get("req_type")req_msg = request.form.get("req_msg")  # 描述remark = request.form.get("remark")  # 備注if req_type == "toy":user_info = MONGO_DB.toys.find_one({"_id": ObjectId(user_id)})else:user_info = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})req_str = {"req_user": str(user_info.get("_id")),"req_type": req_type,"req_toy": friend_id,"req_msg": req_msg,"avatar": user_info.get("avatar"),"user_remark": remark,# 昵稱,玩具是沒有的"user_nick": user_info.get("nickname") if user_info.get("nickname") else user_info.get("baby_name"),# 狀態(tài),1通過,2拒絕,0中間狀態(tài)(可切換到1和2)。"status": 0}MONGO_DB.req.insert_one(req_str)RET["code"] = 0RET["msg"] = "請求發(fā)送成功"RET["data"] = {}return jsonify(RET)
View Code

?

進入HBuilder項目MyApp,新建文件add_req.html

?

修改?add_req.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">請求加為好友</h1></header><div class="mui-content"><form class="mui-input-group"><div class="mui-input-row"><label>請求內(nèi)容</label><input type="text" class="mui-input-clear" placeholder="快來打個招呼把" id="req_content"></div><div class="mui-input-row"><label>好友備注</label><input type="text" class="mui-input-clear" placeholder="給好友起的響亮的2B名字" id="remark"></div><div class="mui-button-row"><button type="button" class="mui-btn mui-btn-primary" id="send_req">發(fā)送請求</button><button type="button" class="mui-btn mui-btn-danger mui-action-back">取消</button></div></form></div><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()var Sdata = null;mui.plusReady(function() {Sdata = plus.webview.currentWebview();})document.getElementById("send_req").addEventListener("tap", function() {mui.post(window.serv + "/add_req", {user_id: Sdata.user_id,req_type: Sdata.req_type,friend_id: Sdata.friend_id,req_msg: document.getElementById("req_content").value,remark: document.getElementById("remark").value},function(data) {console.log(JSON.stringify(data));})})</script></body></html>
View Code

?

修改 index.html,將 底部選項卡中的 郵件,改為 好友請求

<!DOCTYPE html>
<html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><title></title><script src="js/mui.js"></script><link href="css/mui.min.css" rel="stylesheet" /></head><body><!--底部選項卡--><nav class="mui-bar mui-bar-tab"><a class="mui-tab-item mui-active" id="index"><span class="mui-icon mui-icon-home"></span><span class="mui-tab-label">首頁</span></a><a class="mui-tab-item" id="message"><span class="mui-icon mui-icon-chat"><span class="mui-badge mui-badge-red" id="msg_count">0</span></span><span class="mui-tab-label">消息</span></a><a class="mui-tab-item" id="req"><span class="mui-icon mui-icon-email"></span><span class="mui-tab-label">好友請求</span></a><a class="mui-tab-item" id="login"><span class="mui-icon mui-icon-gear"></span><span class="mui-tab-label">設(shè)置</span></a></nav></body><script type="text/javascript" charset="utf-8">var ws = null; // websocket對象var msg_data = null;  // 消息數(shù)據(jù)mui.init({subpages: [{url: "main.html",id: "main.html",styles: window.styles}]});mui.plusReady(function() {//            console.log(JSON.stringify(plus.webview.currentWebview()))if(plus.storage.getItem("user")) { // 判斷是否登錄console.log('已結(jié)登錄了!');//連接websocket連接ws = new WebSocket("ws://" + window.ws_serv + "/app/" + plus.storage.getItem("user"))// 發(fā)送post請求console.log(window.serv + "/get_msg_list");mui.post(// 訪問消息列表window.serv + "/get_msg_list", {user_id: plus.storage.getItem("user")},function(data) {console.log(JSON.stringify(data));//  {"code":0,"data":{"5ba0f1f2e12532418089bf88":1,"count":1},"msg":""}msg_data = data.data;// 修改消息選項卡的角標數(shù)字document.getElementById("msg_count").innerText = msg_data.count;});// 客戶端接收服務(wù)端數(shù)據(jù)時觸發(fā)ws.onmessage = function(data) {console.log(data.data);var msg = JSON.parse(data.data);var chat = plus.webview.getWebviewById("chat.html");mui.fire(chat, "new_msg", {  // 向chat.html傳值data: msg});var msg_count = document.getElementById("msg_count");// 當前頁面加1msg_count.innerText = parseInt(msg_count.innerText) + 1;// 加1,用于message.html顯示msg_data[msg.from_user]++;};}// 自動重連ws.onclose = function() {window.location.reload();}});// 消息document.getElementById("message").addEventListener("tap", function() {mui.openWindow({url: "message.html",id: "message.html",styles: window.styles,extras: {// 傳輸用戶id,給message.htmluser_id: plus.storage.getItem("user"),msg_data: msg_data,//  "data":{"5ba0f1f2e12532418089bf88":1,"count":1}}})});document.getElementById("index").addEventListener("tap", function() {mui.openWindow({url: "main.html",id: "main.html",styles: window.styles})})document.getElementById("req").addEventListener("tap", function() {mui.openWindow({url: "req_list.html",id: "req_list.html",styles: window.styles})})document.getElementById("login").addEventListener("tap", function() {// 自動登錄,判斷storage中的user存在,就跳轉(zhuǎn)到user_info,否則跳轉(zhuǎn)loginif(plus.storage.getItem("user")) {mui.openWindow({url: "user_info.html",id: "user_info.html",styles: window.styles,extras: {user_id: plus.storage.getItem("user")}})} else {mui.openWindow({url: "login.html",id: "login.html",styles: window.styles})}})document.addEventListener("login", function(data) {// fire事件接收消息,使用data.detail// index是為做顯示區(qū)分mui.toast("index" + data.detail.msg)});document.addEventListener("send_music", function(data) { //監(jiān)聽send_music事件var music_name = data.detail.music_name; //獲取player.html使用fire發(fā)送的music_name值var toy_id = data.detail.toy_id; //獲取發(fā)送的玩具idsend_str = { //構(gòu)造數(shù)據(jù)data: music_name,to_user: toy_id, // 目標用戶,這里統(tǒng)一格式msg_type: "music", // 類型為音樂}// 發(fā)送數(shù)據(jù)給后端,注意要json序列化ws.send(JSON.stringify(send_str));});document.addEventListener("send_msg", function(data) { //發(fā)送消息var filename = data.detail.filenamevar to_user = data.detail.to_usersend_str = {to_user: to_user}ws.send(JSON.stringify(send_str))plus.io.resolveLocalFileSystemURL(filename, function(entry) {// 可通過entry對象操作test.html文件 entry.file(function(file) {// FileReader文件系統(tǒng)中的讀取文件對象,用于獲取文件的內(nèi)容var fileReader = new plus.io.FileReader();//                        alert("getFile:" + JSON.stringify(file));// readAsDataURL: 以URL編碼格式讀取文件數(shù)據(jù)內(nèi)容fileReader.readAsDataURL(file, 'utf-8');// onloadend: 文件讀取操作完成時的回調(diào)函數(shù)fileReader.onloadend = function(evt) {console.log(evt.target.result);var b = dataURLtoBlob(evt.target.result);ws.send(b); // 發(fā)送blob數(shù)據(jù)}//                        alert(file.size + '--' + file.name)});});});// 監(jiān)聽cut_msg_count事件,由message.html向index.html執(zhí)行firedocument.addEventListener("cut_msg_count", function(data) {var msg_count = document.getElementById("msg_count");var cut = parseInt(data.detail.cut);  // parseInt表示強制轉(zhuǎn)換var count = parseInt(msg_count.innerText);  // 默認獲取innerText是字符串,需要強制轉(zhuǎn)換msg_count.innerText = count - cut;  // 總數(shù) 減去 點擊聊天會話的數(shù)量,比如小甜甜的});function dataURLtoBlob(dataurl) { // 數(shù)據(jù)轉(zhuǎn)換為Blob// 邏輯很復(fù)雜,這里不解釋了。直接用就可以了!var arr = dataurl.split(','),mime = arr[0].match(/:(.*?);/)[1],bstr = atob(arr[1]),n = bstr.length,u8arr = new Uint8Array(n);while(n--) {u8arr[n] = bstr.charCodeAt(n);}var a = new Blob([u8arr], {type: mime});return a}</script></html>
View Code

?

新建文件?req_list.html

?

修改?req_list.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><h1 class="mui-title">玩具的好友請求</h1></header><div class="mui-content" ><ul class="mui-table-view" id="req_list"></ul></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()mui.plusReady(function(){mui.post(window.serv + "/req_list",{user_id:plus.storage.getItem("user")},function(data){console.log(JSON.stringify(data));for (var i = 0; i < data.data.length; i++) {create_req(data.data[i])}})})function create_req(req){        var litag = document.createElement("li");litag.className = "mui-table-view-cell mui-media";var atag = document.createElement("a");atag.id = req._id;// 點擊事件 周一把這兒寫了 綁定事件atag.onclick = function(){console.log(this.id);open_req(this.id);}var imgtag = document.createElement("img");imgtag.className = "mui-media-object mui-pull-left";imgtag.src = "avatar/" + req.avatar;var divtag = document.createElement("div");divtag.className = "mui-media-body";divtag.innerText = req.user_nick;var ptag = document.createElement("p");ptag.className = "mui-ellipsis";ptag.innerText = req.req_msg;litag.appendChild(atag);atag.appendChild(imgtag);atag.appendChild(divtag);divtag.appendChild(ptag);document.getElementById("req_list").appendChild(litag);}function open_req(req_id){mui.openWindow({url:"acc_ref_req.html",id:"acc_ref_req.html",extras:{req_id:req_id}})}</script>
</html>
View Code

?

進入 flask項目,修改?serv-->friend.py,增加函數(shù) req_list

from flask import Blueprint, request, jsonify
from setting import MONGO_DB
from setting import RET
from bson import ObjectIdfri = Blueprint("fri", __name__)@fri.route("/friend_list", methods=["POST"])
def friend_list():  # 好友列表user_id = request.form.get("user_id")# 查詢用戶id信息res = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})friend_list = res.get("friend_list")  # 獲取好友列表
RET["code"] = 0RET["msg"] = ""RET["data"] = friend_listreturn jsonify(RET)@fri.route("/add_req", methods=["POST"])
def add_req():  # 添加好友請求user_id = request.form.get("user_id")  # 有可能是 toy_id or user_idfriend_id = request.form.get("friend_id")  # 100%是toy_idreq_type = request.form.get("req_type")req_msg = request.form.get("req_msg")  # 描述remark = request.form.get("remark")  # 備注if req_type == "toy":user_info = MONGO_DB.toys.find_one({"_id": ObjectId(user_id)})else:user_info = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})req_str = {"req_user": str(user_info.get("_id")),"req_type": req_type,"req_toy": friend_id,"req_msg": req_msg,"avatar": user_info.get("avatar"),"user_remark": remark,# 昵稱,玩具是沒有的"user_nick": user_info.get("nickname") if user_info.get("nickname") else user_info.get("baby_name"),# 狀態(tài),1通過,2拒絕,0中間狀態(tài)(可切換到1和2)。"status": 0}MONGO_DB.req.insert_one(req_str)RET["code"] = 0RET["msg"] = "請求發(fā)送成功"RET["data"] = {}return jsonify(RET)@fri.route("/req_list", methods=["POST"])
def req_list():  # 添加請求列表user_id = request.form.get("user_id")user_info = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})bind_toy = user_info.get("bind_toy")reqs = list(MONGO_DB.req.find({"req_toy": {"$in": bind_toy}, "status": 0}))for index, req in enumerate(reqs):reqs[index]["_id"] = str(req.get("_id"))RET["code"] = 0RET["msg"] = ""RET["data"] = reqsreturn jsonify(RET)
View Code

?

用戶收到 添加好友請求后,還可以拒絕請求。

進入HBuilder項目MyApp,新建文件acc_ref_req.html

?

修改文件?acc_ref_req.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">處理好友請求</h1></header><div class="mui-content"><ul class="mui-table-view"><li class="mui-table-view-cell mui-media"><a href="javascript:;"><img class="mui-media-object mui-pull-left" src="" id="avatar"><div class="mui-media-body"><span id="user_nick"></span><p class="mui-ellipsis" id="req_msg"></p></div></a></li></ul><form class="mui-input-group"><div class="mui-input-row"><label>好友備注</label><input type="text" class="mui-input-clear" placeholder="給好友起的響亮的2B名字" id="remark"></div><div class="mui-button-row"><button type="button" class="mui-btn mui-btn-primary" id="ido">I Do</button><button type="button" class="mui-btn mui-btn-danger mui-action-back" id="goodman">好人卡</button></div></form></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()var Sdata = null;mui.plusReady(function() {Sdata = plus.webview.currentWebview();mui.post(window.serv + "/get_req", {req_id: Sdata.req_id},function(data) {console.log(JSON.stringify(data));document.getElementById("avatar").src = "avatar/" + data.data.avatar;document.getElementById("user_nick").innerText = data.data.user_nick;document.getElementById("req_msg").innerText = data.data.req_msg;})})document.getElementById("ido").addEventListener("tap", function() {var remark = document.getElementById("remark").value;mui.post(window.serv + "/acc_req", {req_id: Sdata.req_id,remark:remark},function(data) {console.log(JSON.stringify(data));})})document.getElementById("goodman").addEventListener("tap", function() {mui.post(window.serv + "/ref_req", {req_id: Sdata.req_id},function(data) {console.log(JSON.stringify(data));})})</script></html>
View Code

?

修改 qrcode.html,這里應(yīng)該要掃描玩具二維碼的。但是太麻煩了,直接固定設(shè)備編號!

固定設(shè)備編號為 小豆芽,發(fā)給后端。因為當前web玩具是小甜甜。它需要增加對方才行!

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link rel="stylesheet" type="text/css" href="css/mui.css" /></head><body><header class="mui-bar mui-bar-nav"><a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a><h1 class="mui-title">掃描玩具二維碼</h1></header><div class="mui-content"><div style="height: 550px;" id="qr"></div></div></body><script src="js/mui.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">mui.init()var Sdata = null;mui.plusReady(function() {Sdata = plus.webview.currentWebview();
//            var barcode = new plus.barcode.Barcode('qr');
//            //      plus.webview.currentWebview().append(barcode);
//            barcode.onmarked = chenggong;
//            barcode.start();// 臨時改為小豆芽的設(shè)備id,從MongoDB中的toys表查詢chenggong(0,"02cc0fc7490b6ee08c31f38ac7a375eb")})function chenggong(type, code) {mui.post(window.serv + "/yanzheng_qr", {device_id: code},function(data) {console.log(JSON.stringify(data));mui.toast(data.msg);if(data.code == 2) {mui.back();}if(data.code == 1) {//加好友的小邏輯 跳轉(zhuǎn)到加好友頁面    if(Sdata.toy_id) {//1.玩具 添加好友 toys toysmui.openWindow({url: "add_req.html",id: "add_req.html",extras: {req_type: "toy",user_id: Sdata.toy_id,friend_id: data.data.toy_id}})} else {// 2.手機app 添加好友 users toysmui.openWindow({url: "add_req.html",id: "add_req.html",extras: {req_type: "user",user_id: plus.storage.getItem("user"),friend_id: data.data.toy_id}})}}if(data.code == 0) {//今天的邏輯 創(chuàng)建玩具 綁定用戶 成為玩具的第一個好友//1.創(chuàng)建玩具:打開創(chuàng)建玩具的頁面if(Sdata.toy_id) {mui.back()} else {mui.openWindow({url: "bind_toy.html",id: "bind_toy.html",extras: {device_id: code}})}}})}</script></html>
View Code

?

進入flask項目,修改?serv-->friend.py,增加函數(shù)get_req,acc_req,ref_req

from flask import Blueprint, request, jsonify
from setting import MONGO_DB
from setting import RET
from bson import ObjectIdfri = Blueprint("fri", __name__)@fri.route("/friend_list", methods=["POST"])
def friend_list():  # 好友列表user_id = request.form.get("user_id")# 查詢用戶id信息res = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})friend_list = res.get("friend_list")  # 獲取好友列表
RET["code"] = 0RET["msg"] = ""RET["data"] = friend_listreturn jsonify(RET)@fri.route("/add_req", methods=["POST"])
def add_req():  # 添加好友請求user_id = request.form.get("user_id")  # 有可能是 toy_id or user_idfriend_id = request.form.get("friend_id")  # 100%是toy_idreq_type = request.form.get("req_type")req_msg = request.form.get("req_msg")  # 描述remark = request.form.get("remark")  # 備注if req_type == "toy":user_info = MONGO_DB.toys.find_one({"_id": ObjectId(user_id)})else:user_info = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})req_str = {"req_user": str(user_info.get("_id")),"req_type": req_type,"req_toy": friend_id,"req_msg": req_msg,"avatar": user_info.get("avatar"),"user_remark": remark,# 昵稱,玩具是沒有的"user_nick": user_info.get("nickname") if user_info.get("nickname") else user_info.get("baby_name"),# 狀態(tài),1通過,2拒絕,0中間狀態(tài)(可切換到1和2)。"status": 0}MONGO_DB.req.insert_one(req_str)RET["code"] = 0RET["msg"] = "請求發(fā)送成功"RET["data"] = {}return jsonify(RET)@fri.route("/req_list", methods=["POST"])
def req_list():  # 添加請求列表user_id = request.form.get("user_id")user_info = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})bind_toy = user_info.get("bind_toy")reqs = list(MONGO_DB.req.find({"req_toy": {"$in": bind_toy}, "status": 0}))for index, req in enumerate(reqs):reqs[index]["_id"] = str(req.get("_id"))RET["code"] = 0RET["msg"] = ""RET["data"] = reqsreturn jsonify(RET)@fri.route("/get_req", methods=["POST"])
def get_req():  # 獲取好友請求req_id = request.form.get("req_id")req_info = MONGO_DB.req.find_one({"_id": ObjectId(req_id)})req_info["_id"] = str(req_info.get("_id"))RET["code"] = 0RET["msg"] = ""RET["data"] = req_inforeturn jsonify(RET)@fri.route("/acc_req", methods=["POST"])
def acc_req():  # 允許好友請求req_id = request.form.get("req_id")remark = request.form.get("remark")req_info = MONGO_DB.req.find_one({"_id": ObjectId(req_id)})# 1. 為 user 或 toy 添加 toyif req_info.get("req_type") == "toy":user_info = MONGO_DB.toys.find_one({"_id": ObjectId(req_info.get("req_user"))})else:user_info = MONGO_DB.users.find_one({"_id": ObjectId(req_info.get("req_user"))})toy = MONGO_DB.toys.find_one({"_id": ObjectId(req_info.get("req_toy"))})chat_window = MONGO_DB.chat.insert_one({"user_list": [str(toy.get("_id")), str(user_info.get("_id"))]})friend_info = {"friend_id": str(toy.get("_id")),"friend_name": toy.get("baby_name"),"friend_remark": req_info.get("user_remark"),"friend_avatar": toy.get("avatar"),"friend_chat": str(chat_window.inserted_id)}if req_info.get("req_type") == "toy":MONGO_DB.toys.update_one({"_id": ObjectId(req_info.get("req_user"))},{"$push": {"friend_list": friend_info}})else:MONGO_DB.users.update_one({"_id": ObjectId(req_info.get("req_user"))},{"$push": {"friend_list": friend_info}})# 2. 為 toy 添加 user 或 toyuser_name = user_info.get("nickname") if user_info.get("nickname") else user_info.get("baby_name")friend_info2 = {"friend_id": str(user_info.get("_id")),"friend_name": user_name,# 同意方的備注"friend_remark": remark if remark else user_name,"friend_avatar": user_info.get("avatar"),"friend_chat": str(chat_window.inserted_id)}MONGO_DB.toys.update_one({"_id": ObjectId(req_info.get("req_toy"))},{"$push": {"friend_list": friend_info2}})RET["code"] = 0RET["msg"] = f"添加好友{remark}成功"RET["data"] = {}MONGO_DB.req.update_one({"_id": ObjectId(req_id)}, {"$set": {"status": 1}})return jsonify(RET)@fri.route("/ref_req", methods=["POST"])
def ref_req():  # 拒絕好友請req_id = request.form.get("req_id")MONGO_DB.req.update_one({"_id": ObjectId(req_id)}, {"$set": {"status": 2}})RET["code"] = 0RET["msg"] = "已拒絕好友請求"RET["data"] = {}return jsonify(RET)
View Code

重啟?manager.py

?

使用模擬器訪問,點擊添加好友,效果如下:

?

輸入表單數(shù)據(jù),效果如下:

?

點擊發(fā)送請求,查看Pycharm控制臺輸出:

192.168.11.25 - - [25/Sep/2018 20:49:47] "POST /add_req HTTP/1.1" 200 -

請求成功了

?

查看表 req,發(fā)現(xiàn)有一條記錄

?

點擊底部選項卡的 好友請求--> 小甜甜

?

?

?輸入好友備注,點擊 I Do

?

?

?查看Pycharm

192.168.11.25 - - [25/Sep/2018 21:05:46] "POST /acc_req HTTP/1.1" 200 -

?

返回管理我的玩具,點擊小甜甜,效果如下:

發(fā)現(xiàn)多了一個好友

?

查看玩具表,查看 friend_list字段。有2個記錄

/* 1 createdAt:2018/9/19 下午5:53:08*/
{"_id" : ObjectId("5ba21c84e1253229c4acbd12"),"device_id" : "02cc0fc7490b6ee08c31f38ac7a375eb","toy_name" : "豆芽","baby_name" : "小豆芽","gender" : "2","avatar" : "girl.jpg","bind_user" : "5b9bb768e1253281608e96eb","friend_list" : [{"friend_id" : "5b9bb768e1253281608e96eb","friend_name" : "xiao","friend_remark" : "小魚","friend_avatar" : "boy.jpg","friend_chat" : "5ba21c84e1253229c4acbd11","user_type" : "user"},{"friend_id" : "5ba0f1f2e12532418089bf88","friend_name" : "小甜甜","friend_remark" : "小甜甜","friend_avatar" : "girl.jpg","friend_chat" : "5bab7c19e125327ffc804459","user_type" : "toy"}]
},/* 2 createdAt:2018/9/18 下午8:39:14*/
{"_id" : ObjectId("5ba0f1f2e12532418089bf88"),"device_id" : "01f9bf1bac93eddd8397d0455abbeddb","toy_name" : "小可愛","baby_name" : "小甜甜","gender" : "2","avatar" : "girl.jpg","bind_user" : "5b9bb768e1253281608e96eb","friend_list" : [{"friend_id" : "5b9bb768e1253281608e96eb","friend_name" : "xiao","friend_remark" : "小魚","friend_avatar" : "boy.jpg","friend_chat" : "5ba21c84e1253229c4acbd11","user_type" : "user"},{"friend_id" : "5ba21c84e1253229c4acbd12","friend_name" : "小豆芽","friend_remark" : "豆芽","friend_avatar" : "girl.jpg","friend_chat" : "5bab7c19e125327ffc804459","user_type" : "toy"}]
}
View Code

會發(fā)現(xiàn),小甜甜和小豆芽,互為好友了!

?

今日總結(jié):

1.玩具管理頁面mui組件 :msl  : 圖文表格2.控制玩具通訊錄3.基于請求的好友關(guān)系建立發(fā)送請求:帶上自己的所有信息 + 請求信息接收請求:可以看到自己的所有消息雙方添加好友:同意:1.判斷自己是玩具還是用戶2.查詢好友的信息3.建立好友的信息(friend_list 中的元素)4.將建立的好友信息存放在自己的friend_list中5.建立自己的信息(好友的friend_list 中的元素)6.將建立的自己信息存放在好友的friend_list中7.將請求的狀態(tài)改為 1
View Code

?

完整代碼,參考github:

https://github.com/987334176/Intelligent_toy/archive/v1.6.zip

注意:qrcode.html,固定設(shè)備編號為 小豆芽。需要修正一下!

?

轉(zhuǎn)載于:https://www.cnblogs.com/xiao987334176/p/9700878.html

總結(jié)

以上是生活随笔為你收集整理的python 全栈开发,Day132(玩具管理页面,控制玩具通讯录,基于请求的好友关系建立)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

黄色福利 | 亚洲天堂香蕉 | 九九视频免费在线观看 | 黄色亚洲在线 | 日韩大片在线免费观看 | 国产成人精品国内自产拍免费看 | 亚洲国产精品激情在线观看 | 国产三级视频在线 | 国产一区高清在线观看 | 在线观看视频你懂的 | 国产精品完整版 | 国产美腿白丝袜足在线av | 色婷婷综合在线 | 久久久久 免费视频 | 国产精品视频 | 国产 日韩 欧美 自拍 | 狠狠五月天 | 日韩视频欧美视频 | 91热在线| av在线中文 | 亚洲aⅴ乱码精品成人区 | 亚洲欧美怡红院 | 91黄色视屏 | 久久久亚洲精品 | 97影视| 国产精品18久久久久久首页狼 | 美女久久视频 | 美女搞黄国产视频网站 | 亚洲精品久久久久久久不卡四虎 | 国产96精品| 免费电影播放 | 亚洲国产欧美在线看片xxoo | av网址最新 | 国产一级电影免费观看 | 久久官网 | 91在线观看视频 | 国产精品一区二区三区四区在线观看 | 午夜国产在线观看 | 97超碰超碰久久福利超碰 | 久久精品一级片 | 久久久久久久久久网站 | 国产在线观看免费观看 | 黄色国产精品 | 99久久精品国产免费看不卡 | 国产第一页精品 | 国产精品麻豆欧美日韩ww | 国产精品久久久久久电影 | 免费亚洲一区二区 | 在线看的av网站 | 成人免费在线播放 | 天天干天天碰 | 亚洲免费国产视频 | www日日| www狠狠操| av888av.com| 日韩欧美高清一区二区 | 六月天色婷婷 | 久久免费99精品久久久久久 | 精品视频资源站 | 日韩在线观看中文字幕 | 国语精品久久 | 美女精品在线 | 午夜精品久久久久久 | 在线观看久久久久久 | 中文字幕在线观看一区二区三区 | 久久av免费 | 波多野结衣一区二区三区中文字幕 | 中午字幕在线观看 | 日韩中文字幕a | 国产18精品乱码免费看 | 中文字幕国产一区二区 | 亚洲激情校园春色 | 欧美影片| 在线看小早川怜子av | 2023天天干 | 悠悠av资源片 | 国产亚洲精品久久久久久久久久久久 | 久久99久久99精品中文字幕 | 精品一区中文字幕 | www.久久久 | 国产91勾搭技师精品 | 天堂在线视频免费观看 | 2023年中文无字幕文字 | 日本精品久久久久影院 | 精品一区二区三区电影 | 天天综合网国产 | 国产免费中文字幕 | 亚洲精品国产精品乱码不99热 | 黄色片毛片 | 国产精品毛片一区二区 | 成人亚洲精品国产www | 欧美精品v国产精品v日韩精品 | 欧美中文字幕第一页 | 97在线免费视频 | 国产一级免费观看视频 | 欧美天天射 | 免费欧美 | 久久夜色精品国产欧美乱 | 日韩视频a | 激情小说网站亚洲综合网 | 六月激情 | 日本不卡一区二区三区在线观看 | 日韩在线观看第一页 | 欧美 日韩 国产 成人 在线 | 亚洲精品乱码久久久久久久久久 | 久久久久久免费网 | 96久久 | 午夜精品福利一区二区三区蜜桃 | 丁香六月五月婷婷 | 热久久这里只有精品 | 国产精品免费在线视频 | 国产色a在线观看 | 麻豆系列在线观看 | 日韩欧美99| 在线不卡a | 美女免费视频一区二区 | 国产精品一区二区三区观看 | 国产午夜精品一区二区三区嫩草 | 国产视频精选在线 | 天天干天天干天天操 | 波多野结衣亚洲一区二区 | 欧美永久视频 | 午夜性福利| 超碰97人 | 日韩中文字幕免费视频 | 久久麻豆视频 | 91最新地址永久入口 | 国产精品欧美一区二区 | 97看片吧 | 西西444www高清大胆 | 亚洲第一香蕉视频 | 日韩中文字幕视频在线 | 国产99精品在线观看 | 亚洲午夜不卡 | 午夜影视av| 亚洲精品国精品久久99热一 | 91av影视| 国产亚洲资源 | 欧美一区二区三区四区夜夜大片 | 奇米网网址 | 日本公妇在线观看高清 | 成人在线观看免费 | 国产成人精品一区二区三区免费 | 欧美日韩不卡在线 | 久久精品国产免费看久久精品 | 96久久| 亚洲综合小说 | 国产黄a三级 | 美女久久久| 欧美性一级观看 | 黄色在线观看免费 | 最近日韩中文字幕中文 | 97av免费视频 | 亚洲理论在线观看 | 激情综合网五月激情 | 91精品视频在线看 | 日韩不卡高清 | 日韩在线网址 | 一区二区三区在线免费 | 成人国产精品免费 | 99精品国产成人一区二区 | 亚洲欧美日韩中文在线 | 成人亚洲精品国产www | 最近中文字幕大全中文字幕免费 | 韩国av免费在线观看 | 四虎影视成人精品 | 国产福利av| 欧美激情视频一区二区三区免费 | 人人草人| 中文亚洲欧美日韩 | 中文字幕乱码电影 | 狠狠的干狠狠的操 | 91视频最新网址 | 91少妇精拍在线播放 | 亚洲精品小视频在线观看 | 色噜噜噜噜 | 中文字幕资源网 | 久久草草热国产精品直播 | 婷婷日日 | 国产精品成久久久久 | 婷婷色综合网 | 亚洲成人av一区二区 | 日韩专区视频 | 久草综合在线观看 | 日本中文在线播放 | 色视频网站在线观看一=区 a视频免费在线观看 | 成人看片 | 99热国产精品 | 91在线小视频 | 精品国产一区二区三区在线 | 中文字幕在线观看视频一区二区三区 | 国产小视频在线免费观看 | 在线观看欧美成人 | 久久高视频 | 免费在线观看亚洲视频 | 精品麻豆入口免费 | 久久久久亚洲精品男人的天堂 | 国产精品99久久久久人中文网介绍 | 婷婷网五月天 | 99视频偷窥在线精品国自产拍 | 五月天丁香亚洲 | 九九视频免费在线观看 | 午夜精品婷婷 | 国产丝袜网站 | 欧美一级免费黄色片 | 高潮毛片无遮挡高清免费 | 日韩精品视频一二三 | 美女网站黄在线观看 | 久久69精品 | 一区二区在线不卡 | 五月婷婷综合久久 | 国产视频一区二区在线播放 | 五月激情五月激情 | 免费观看成人网 | 超碰97网站| 亚洲高清视频在线 | 国产精品欧美日韩在线观看 | 在线精品亚洲 | 国产99一区 | 国产不卡精品 | 国产精品99久久久久久小说 | 六月丁香伊人 | bbbb操bbbb| 国产精品露脸在线 | 欧美日韩伦理在线 | 麻豆视频在线观看免费 | 亚洲天堂在线观看完整版 | 日韩羞羞 | 国产精品麻豆99久久久久久 | 92精品国产成人观看免费 | 日韩精品在线免费观看 | 国产欧美精品xxxx另类 | 久久看免费视频 | 久久蜜桃av | 日韩精品亚洲专区在线观看 | 久久久久久久国产精品视频 | 黄色在线观看免费 | 成人网页在线免费观看 | 国产成人久久精品77777 | 国产成人久久久久 | 免费日韩一级片 | 日韩一二三| 亚洲电影自拍 | 午夜久久久精品 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 精品亚洲视频在线观看 | 亚洲在线网址 | 色天天综合网 | 国产日韩视频在线观看 | 欧美精品久久久久久久久久白贞 | 久久久久久久久精 | 成人午夜黄色影院 | 国产成人av电影在线观看 | 97国产大学生情侣白嫩酒店 | av 一区 二区 久久 | 黄色aaa级片 | 欧美日韩精品在线播放 | 91最新网址 | 国产永久免费 | 国产午夜精品久久久久久久久久 | 国内丰满少妇猛烈精品播放 | 久久久国产毛片 | 一区久久久 | 天天操人人要 | 91久久影院 | 日日碰狠狠躁久久躁综合网 | 亚洲精品国产精品国自产观看浪潮 | 国产精品美乳一区二区免费 | 久草 | 激情黄色一级片 | 久久短视频 | 婷婷精品在线视频 | 一本一本久久a久久精品牛牛影视 | 成片视频在线观看 | 成人免费在线观看入口 | 天天射天天操天天色 | 亚洲专区 国产精品 | 丁香激情网 | 久久久天天操 | 99精品视频在线播放免费 | 亚洲国产视频a | 国产日韩欧美在线播放 | 色偷偷88888欧美精品久久久 | 日韩av免费大片 | www国产亚洲精品久久麻豆 | 免费成人黄色av | 91色国产在线 | 免费h精品视频在线播放 | 夜又临在线观看 | 欧美精品免费在线观看 | 久久天堂精品视频 | 国产精品2区 | 国产96在线观看 | 中文国产字幕在线观看 | 亚洲九九 | 国内精品久久影院 | 国产成a人亚洲精v品在线观看 | 人人草人人做 | 97在线免费视频观看 | 婷婷av电影| 韩国三级在线一区 | 国产美女精品视频 | 天天草天天色 | 亚洲久在线 | 天天干天天干 | 亚洲成人免费在线观看 | 国产精品视频全国免费观看 | 一区二区视频网站 | 国产免费久久精品 | 天天干天天拍天天操 | 99精品免费久久久久久久久日本 | 国产精品 亚洲精品 | 日韩视频在线观看免费 | 成人欧美一区二区三区在线观看 | 久久久久久久久久久久久久电影 | 毛片精品免费在线观看 | 夜夜操狠狠干 | 免费国产黄线在线观看视频 | 视频一区二区三区视频 | 日韩av一卡二卡三卡 | 色综合网在线 | 韩国av一区二区三区在线观看 | 国产黄色精品视频 | 久热av在线 | 久久这里| 婷婷国产v亚洲v欧美久久 | 日本mv大片欧洲mv大片 | 黄色免费网站 | 成人免费在线播放 | 日韩精品无 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 欧美成人xxx| 欧洲亚洲激情 | 一区二区精品在线 | 国产精品四虎 | 在线免费观看国产黄色 | 久久精品韩国 | 国产成人精品一区二区三区免费 | 毛片网在线观看 | 天天操天天干天天玩 | 日韩欧美视频 | 婷婷丁香九月 | 99热九九这里只有精品10 | 欧美性一级观看 | 日韩欧美在线视频一区二区三区 | www.av中文字幕.com | 欧美影院久久 | 欧美一级视频免费 | 亚洲精品免费在线观看 | 99在线免费视频观看 | 久久福利国产 | 亚洲精品玖玖玖av在线看 | 日韩视频一二三区 | 成人免费看片98欧美 | www亚洲国产| 国产日产精品一区二区三区四区 | 久久亚洲精品国产亚洲老地址 | 亚洲日b视频 | 成 人 黄 色 视频 免费观看 | 国产精品18久久久久vr手机版特色 | 精品久久久久久久久久 | 亚洲精品视频网址 | 午夜精品久久久久99热app | 国产黄在线播放 | 国产一区二区三区视频在线 | 亚洲精品mv在线观看 | 一区中文字幕在线观看 | 一区 在线 影院 | 日本黄色免费电影网站 | 国产专区精品 | 国产欧美精品一区二区三区四区 | 亚洲精品午夜视频 | 97在线超碰 | 99在线观看 | 亚洲欧洲中文日韩久久av乱码 | 99国产成+人+综合+亚洲 欧美 | 91精品国产欧美一区二区成人 | 日本精品久久久一区二区三区 | 久久国产精品免费 | 国产精品免费人成网站 | 亚洲精品中文在线资源 | 激情视频免费在线 | 日韩资源在线 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国产精品女主播一区二区三区 | 色视频国产直接看 | 亚州精品天堂中文字幕 | 亚洲精品系列 | 涩涩网站免费 | 黄色天堂在线观看 | 国产精品美女久久久网av | 亚洲黄色成人 | 综合网天天 | 2018好看的中文在线观看 | 日本不卡一区二区 | 亚洲国产精品第一区二区 | 久久综合桃花 | 久久激情视频免费观看 | 午夜123 | 日韩特级黄色片 | 天天干天天想 | 蜜桃视频色 | 中文字幕一区二区在线观看 | 国产精品美女久久久久久久久 | 激情欧美一区二区三区 | 欧美日韩亚洲第一页 | 玖玖爱国产在线 | 五月天综合激情 | 色.www| 在线成人欧美 | 美女黄久久 | 色婷婷视频在线观看 | 久久夜色精品国产欧美乱极品 | 97电院网手机版 | 人人看人人艹 | 久久免费视频1 | 成人a免费视频 | 99999精品 | 九九九电影免费看 | 麻豆高清免费国产一区 | 狠狠操天天射 | 九色视频网址 | 天天久久综合 | 久久高清国产 | 国产成人一级电影 | 99久久99热这里只有精品 | 高清不卡免费视频 | 日韩中文字幕第一页 | 在线视频在线观看 | 精品免费国产一区二区三区四区 | 国产婷婷精品av在线 | 在线观看一级 | 最近中文字幕高清字幕免费mv | 中文乱码视频在线观看 | 日韩久久一区 | 91在线看| 中国精品少妇 | 免费精品国产va自在自线 | 久久国产亚洲精品 | av亚洲产国偷v产偷v自拍小说 | 国产伦理一区二区三区 | 中文字幕在线免费看线人 | 精品久久久国产 | 日韩电影一区二区在线观看 | 天天天色 | 国产视频在线观看一区 | 国产 字幕 制服 中文 在线 | 久久久久久久国产精品 | 不卡视频一区二区三区 | 亚洲国产精久久久久久久 | 米奇四色影视 | 在线观看中文av | 在线婷婷 | 久久最新网址 | 在线观看福利网站 | 精品国产aⅴ一区二区三区 在线直播av | 午夜视频日本 | 成人综合婷婷国产精品久久免费 | 国产亚洲成人精品 | 在线观看成人小视频 | 成人久久电影 | 亚洲精品88欧美一区二区 | 国产精品免费小视频 | www.久久免费 | 97超碰在线人人 | 久久综合免费 | 国产免费又粗又猛又爽 | 国产精品久久久久久久久费观看 | 日日日爽爽爽 | 美女很黄免费网站 | 色综合久久88 | 4p变态网欧美系列 | 国产亚洲精品久久久久久久久久久久 | 久久精品首页 | 国内精品视频免费 | 人人澡av | 亚洲精品乱码久久久久久按摩 | 日韩一级电影在线观看 | 国产精品久久久久久999 | 日本乱码在线 | 天天干天天在线 | 激情欧美丁香 | 免费在线播放视频 | 91精品国产乱码 | 久久影院亚洲 | 国产麻豆精品在线观看 | av资源免费观看 | 精品xxx| 在线精品亚洲一区二区 | 国内成人综合 | 黄色小说在线观看视频 | 久久久久国产一区二区 | 国产特级毛片aaaaaa | 欧美国产大片 | 欧美天堂久久 | www.午夜 | 久久99久久99精品免费看小说 | 日韩欧美有码在线 | 午夜骚影 | 成人精品影视 | 欧美激情精品久久 | 国内外成人在线视频 | 五月色综合 | 国产精品porn| 九九精品在线观看 | 丁香国产视频 | 深夜免费网站 | 成人性生交大片免费看中文网站 | 欧美ⅹxxxxxx | 最新国产精品拍自在线播放 | 亚洲美女免费视频 | 国产精品日韩在线观看 | 一区二区网 | 久久美女视频 | 91视频三区 | 日韩黄色免费电影 | 黄a网| 国产在线视频资源 | 久久天堂影院 | 丁香激情视频 | 国产午夜精品久久久久久久久久 | 欧美成人按摩 | 欧美精品乱码久久久久久 | 久久五月情影视 | 制服丝袜欧美 | 五月天电影免费在线观看一区 | 久久综合九色九九 | a视频免费| 91精品久久久久久久久久久久久 | 国产老太婆免费交性大片 | 日韩精品在线视频 | 在线播放 日韩专区 | 天天干天天摸天天操 | 69精品在线| 狠狠色噜噜狠狠狠合久 | 手机av网站 | 日韩成人精品一区二区 | 天天激情天天干 | 精品一区91 | 人人狠狠综合久久亚洲 | 天堂v中文 | av一区二区三区在线观看 | 丁香激情婷婷 | 中文av字幕在线观看 | 狠狠狠色丁香综合久久天下网 | 黄色aa久久| 久久久久久久久电影 | 日韩一区二区三 | 欧美精品视 | 天天天射 | 男女全黄一级一级高潮免费看 | 青青草国产在线 | 日本mv大片欧洲mv大片 | 亚洲国产成人精品在线 | 精品国产一区二区三区在线观看 | 久久综合九色欧美综合狠狠 | 亚洲乱码在线观看 | 97视频网址 | 4438全国亚洲精品观看视频 | 中文字幕欧美激情 | 免费看片成年人 | 久久久久久久久综合 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 日本性生活免费看 | 99热这里精品 | 色婷婷国产在线 | 天天射天天干天天插 | 成人精品国产 | 日韩午夜电影院 | 综合在线观看色 | 欧美三级在线播放 | 手机成人在线电影 | 国产精品免费大片视频 | 一级做a视频 | 国内精品视频在线播放 | 黄污网 | 国产精品国产三级国产aⅴ9色 | 国产精品久久久久av | 五月婷香| 日韩四虎| 日韩高清国产精品 | 久久五月天婷婷 | 亚洲精品白浆高清久久久久久 | 欧美a级在线免费观看 | 啪啪肉肉污av国网站 | 久久久久久久久久久久久久av | 欧美日韩视频一区二区 | 中文字幕日韩高清 | 另类五月激情 | 亚洲精品在线视频网站 | 欧美一区成人 | 久久免费成人 | 丁香婷婷激情五月 | 一区二区伦理电影 | 欧美综合在线视频 | 国产午夜精品一区二区三区在线观看 | 国产91精品一区二区麻豆亚洲 | 狠狠狠色丁香婷婷综合久久五月 | 欧美日韩精品在线 | 天天操天天操天天 | 午夜精品久久久 | 福利视频精品 | 97色se| 九七视频在线观看 | 国产精品福利在线 | 西西4444www大胆视频 | 超级碰碰免费视频 | 亚洲精品在线免费看 | 人人网人人爽 | 伊人国产女 | 国产四虎在线 | 日韩91av| 成人av在线直播 | 中文字幕色在线视频 | 国产黄色大片免费看 | 五月婷婷六月丁香 | 日韩中文字幕免费看 | 久久精品99国产精品亚洲最刺激 | 欧美肥妇free | 免费人成在线观看 | 亚洲成色 | 国产精品久久久久aaaa | 久草网在线观看 | 欧美国产日韩一区二区三区 | 色资源二区在线视频 | 91九色免费视频 | 操操操日日 | 久草在线视频在线 | 国产精品视频免费观看 | 久久夜色精品国产欧美一区麻豆 | 日本久久高清视频 | 久久精品导航 | 黄色一及电影 | 在线免费观看视频你懂的 | 99re久久精品国产 | 日韩免费福利 | 亚洲高清91| 丁香伊人网| 日三级在线| 亚洲精品中文字幕视频 | 日日夜夜天天久久 | av线上看| 天天射天天射天天射 | 亚洲黄色成人av | 免费国产在线视频 | 69视频在线 | 日韩女同一区二区三区在线观看 | 亚洲一级电影 | 国产一区久久 | 一区二区精品视频 | 亚洲精品综合欧美二区变态 | 9999精品免费视频 | 天天操天天操天天操天天操天天操 | 亚洲成人精品国产 | 国产在线毛片 | 91最新网址在线观看 | 在线亚洲精品 | 91九色蝌蚪在线 | 日韩毛片精品 | www.玖玖玖 | 91大神在线看 | 91成人免费看 | 久久精品首页 | 免费观看国产成人 | 天天天插| 国产日韩欧美在线免费观看 | 狠狠干天天射 | 一区二区不卡视频在线观看 | 国产护士在线 | 成人黄色在线看 | 91在线视频网址 | 涩涩网站在线播放 | 日韩在线视频免费观看 | 久草爱视频 | 日韩最新av在线 | 亚洲国产一区二区精品专区 | 插综合网 | 国产在线视频一区二区三区 | 国产午夜亚洲精品 | 天天爽网站 | av蜜桃在线| 蜜桃传媒一区二区 | 在线看国产视频 | 成人午夜剧场在线观看 | 一区二区 不卡 | 99热在线免费观看 | 久久精品99久久久久久 | 97超碰.com | 91网在线观看 | 五月婷婷久久丁香 | 国产一级在线播放 | 成年人视频免费在线播放 | 91免费网站在线观看 | 国产手机视频在线观看 | 久草影视在线观看 | 免费看污在线观看 | 夜夜操天天干, | 久久久亚洲麻豆日韩精品一区三区 | 九色福利视频 | 91福利国产在线观看 | 99热精品在线 | v片在线播放 | ww亚洲ww亚在线观看 | 成人av在线播放网站 | 国产网红在线观看 | 日韩v在线91成人自拍 | 国产成人资源 | 最新真实国产在线视频 | 中文字幕在线影院 | 97色在线观看免费视频 | 久久久久久久久久久久99 | 国产免费精彩视频 | 国产免费观看高清完整版 | 九九久久精品 | av+在线播放在线播放 | 国产91精品一区二区 | 国产韩国日本高清视频 | 超碰公开在线观看 | 91香蕉视频黄色 | 中文字幕在线国产 | 久久亚洲免费 | а中文在线天堂 | 成人av免费在线看 | 欧美精品xxx | 日韩一区二区免费视频 | 国产视频精品久久 | 日p在线观看 | 日韩精品久久久久久久电影竹菊 | 在线之家免费在线观看电影 | 2019精品手机国产品在线 | 午夜丰满寂寞少妇精品 | 天堂中文在线视频 | 黄色片网站av | 国产999久久久 | 美女久久网站 | 91av在线免费播放 | 色婷婷激情网 | 91在线视频免费观看 | 成人av网站在线 | 亚洲精品在线一区二区 | 97免费在线观看视频 | 69视频在线播放 | 成片免费观看视频999 | 亚洲最大av在线播放 | 黄色亚洲片 | 久久美女视频 | 亚洲精品在线资源 | 免费看的黄网站 | 国产精品久久久久久久久久久久午夜片 | 色偷偷中文字幕 | 免费视频 你懂的 | 日韩精品一区二区三区外面 | 日韩一区二区三区视频在线 | 四虎影视成人永久免费观看视频 | 欧美日韩视频在线播放 | 午夜精品一区二区三区四区 | 天天干人人干 | 国产流白浆高潮在线观看 | 日韩中文字幕在线看 | 91色蜜桃 | 97视频免费观看2区 亚洲视屏 | 成人久久久久久久久 | 欧美成年黄网站色视频 | 黄色网在线播放 | 香蕉网站在线观看 | 国产尤物在线视频 | 日韩午夜视频在线观看 | 免费大片黄在线 | 一区二区三区福利 | 五月激情丁香婷婷 | 国产成人一区二区三区在线观看 | 日韩免费一二三区 | 天天超碰| 日韩中文在线视频 | 国产免费二区 | 国产淫a | 91免费看黄| 中文字幕日韩av | 香蕉影视在线观看 | 日韩在线高清 | 国产五月婷 | 日日夜夜精品免费观看 | 五月综合色婷婷 | 五月婷婷综合在线视频 | 天天草综合网 | 久青草视频 | 91精品国产网站 | 国产一区二区在线影院 | 性色av免费看 | 久久国产精品一区二区 | 天天色综合三 | av中文字幕不卡 | 深夜免费福利在线 | 中文字幕4| 国产精品69久久久久 | 中文字幕av一区二区三区四区 | 国产专区精品 | 天天操夜夜拍 | www免费视频com| 国产午夜精品久久久久久久久久 | 国产在线999 | 在线中文字幕观看 | 91九色视频在线 | 亚洲精品成人 | 亚洲丁香久久久 | 在线免费观看国产精品 | 久久亚洲综合色 | 亚州精品天堂中文字幕 | 天天操天天射天天添 | 久久久久久久久影视 | 色综合天天 | 在线视频观看成人 | 999久久精品 | av电影免费在线看 | 精品久久视频 | 国产精品久久久久久妇 | 日韩欧美一区视频 | 成年人免费看片网站 | 国产亚洲视频在线观看 | 91亚洲网站 | 亚洲一级性 | 国产品久精国精产拍 | 99热最新精品 | 草久热 | 超碰99在线| 国产高清久久久久 | 亚洲精品在线播放视频 | 亚洲综合婷婷 | 久久精品香蕉 | 精品夜夜嗨av一区二区三区 | 亚洲在线激情 | 日本中文字幕观看 | 粉嫩av一区二区三区四区在线观看 | 欧美日韩免费视频 | 久久视频在线观看免费 | 亚洲一级性 | av网站大全免费 | 欧美 日韩 久久 | 成人小视频在线免费观看 | 成人h电影在线观看 | 免费大片黄在线 | 亚洲精品一区二区18漫画 | 欧美男男激情videos | 成人免费91| 四虎免费av| 国产在线看 | 国产精品女人久久久久久 | 久久黄色免费观看 | 制服丝袜一区二区 | 97在线成人| 国产专区视频在线观看 | 日韩欧美在线综合网 | 中文字幕在线观看视频一区 | 超碰公开在线 | 国产在线a不卡 | 99久久婷婷国产精品综合 | 日日操日日插 | 97人人添人澡人人爽超碰动图 | 亚洲欧美国产精品久久久久 | 免费视频久久久久久久 | 亚洲在线免费视频 | 蜜桃视频日本 | 国模一二三区 | 五月天久久| 久久综合欧美精品亚洲一区 | 免费成人结看片 | 久久综合天天 | 97精品在线 | 国产 在线 高清 精品 | 国产麻豆精品久久一二三 | 精品视频一区在线观看 | 草在线视频| 久久精品a| 午夜成人影视 | 激情五月看片 | 欧美淫aaa免费观看 日韩激情免费视频 | 日韩女同av | av色网站 | 亚洲国产精品视频 | 在线综合色 | 日批视频在线观看免费 | 狠狠做深爱婷婷综合一区 | 不卡视频在线 | 久久国内精品 | 欧美国产日韩在线观看 | 国产操在线 | 欧美精品中文字幕亚洲专区 | 欧美地下肉体性派对 | 色婷婷久久一区二区 | 久久久久久久久久久福利 | 欧美午夜性生活 | 二区三区在线视频 | 欧美中文字幕久久 | www日日 | 最近日本韩国中文字幕 | 久久这里只有精品视频99 | 国产亲近乱来精品 | 色播五月激情五月 | 国产精品黄色 | 91污污视频在线观看 | 中文字幕在线观看视频免费 | 九色琪琪久久综合网天天 | 天天做日日做天天爽视频免费 | 综合色站导航 | 国产精品一区二区在线观看 | 久久欧美视频 | 久草在线高清视频 | www.色午夜,com | 久久久精品| 日本三级吹潮在线 | 国产一区二区三区免费视频 | 99r在线视频 | 丁香六月网 | 91在线免费播放 | 九九热有精品 | av女优中文字幕在线观看 | 蜜臀av网站| 91精品久久久久久久久 | 中文字幕在线观看一区二区三区 | 天天综合91 | 国产精品毛片 | 日韩三级视频在线观看 | 天天操夜操视频 | 91av影视| 国产精品午夜久久 | 日韩天堂网 | 黄色一级免费网站 | 毛片激情永久免费 | 亚洲国产精品电影 | 91福利社在线观看 | 九九免费在线观看 | 色久综合 | 91精品在线免费观看视频 | 日韩两性视频 | 九九热在线观看视频 | 日日爱影视| 欧美日韩免费观看一区二区三区 | 亚洲夜夜网 | 欧美另类交在线观看 | 色播99| 91免费观看国产 | 69av视频在线观看 | 国产精品久久久久久久久搜平片 | 在线观看av黄色 | 久久久久久久久久久久久久av | www.久久婷婷 | 免费亚洲片| 欧美一区免费观看 | 久久亚洲福利视频 | 亚洲激情中文 | 欧美日韩亚洲国产一区 | 在线观看免费观看在线91 | 亚洲毛片视频 | 麻豆久久精品 | 在线播放国产一区二区三区 | 国产免费观看高清完整版 | 欧美国产日韩一区二区三区 | 欧美激情综合五月色丁香 | 亚洲一二三久久 | 国产精品2区 | 91亚洲精品国偷拍自产在线观看 | 在线免费观看黄色小说 | 国产精品一区二区久久久久 | 狠狠的操你 | 国产成人精品免高潮在线观看 | 久久人人97超碰精品888 | 亚洲国产一区在线观看 | 久久综合中文字幕 | 国产小视频免费在线网址 | 欧美另类交在线观看 | 日韩精品久久久 | 91av片| av丝袜美腿| 日日夜夜精品免费 | 精品国产精品国产偷麻豆 | 免费性网站 | 天堂久久电影网 | 亚洲精品国 | 黄色网大全 | 国产成人综 | 人人爱人人爽 | 成人午夜网 | 亚洲区视频在线 | 91中文字幕网 | 免费高清无人区完整版 | 9草在线 | 色综合网在线 | 国产69熟 | 日韩av图片 | 免费av片在线 | 麻豆视频在线 | 天操夜夜操 | 四虎在线免费视频 | 国产精品免费在线 | 精品国模一区二区三区 | 91人人在线 | 国产不卡高清 | 色吊丝av中文字幕 |