久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

瀏覽:55日期:2023-01-17 08:17:55

1.總覽

留言的展示參考網(wǎng)絡(luò)上參見的格式,如掘金社區(qū):

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

一共分為兩層,子孫留言都在第二層中

最終效果如下:

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

接下是數(shù)據(jù)庫(kù)的表結(jié)構(gòu),如下所示:

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

有一張user表和留言表,關(guān)系為一對(duì)多,留言表有父留言字段的id,和自身有一個(gè)一對(duì)多的關(guān)系,建表語(yǔ)句如下:

CREATE TABLE `message` ( `id` int NOT NULL AUTO_INCREMENT, `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `content` text NOT NULL, `parent_msg_id` int DEFAULT NULL, `user_id` int NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `message_ibfk_1` (`parent_msg_id`), CONSTRAINT `message_ibfk_1` FOREIGN KEY (`parent_msg_id`) REFERENCES `message` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `message_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `identity` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8

2.后臺(tái)接口

2.1獲取留言接口

在Django的views.py中定義兩個(gè)接口,一個(gè)負(fù)責(zé)提供留言內(nèi)容,一個(gè)負(fù)責(zé)插入留言,如下:

# 獲取留言信息@require_http_methods([’GET’])def findAllMsg(request): response = {} try: sql = ’’’ SELECT msg1.*, user.username, msg2.username AS parent_msg_username FROM message msg1 LEFT JOIN (SELECT m.id, user.username FROM message m LEFT JOIN USER ON m.user_id = user.id )AS msg2 ON msg1.parent_msg_id = msg2.id LEFT JOIN USER ON msg1.user_id = user.id ORDER BY msg1.date DESC; ’’’ with connection.cursor() as cursor: cursor.execute(sql) response[’messages’] = sortMsg(cursor) response[’status_code’] = 200 except Exception as e: response[’status_code’] = 500 response[’error’] = e return JsonResponse(response)

先來(lái)看看這個(gè)sql能查出些什么東西:

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

上面接口中的sorMsg()函數(shù)用于整理留言信息,使子留言和父留言能對(duì)應(yīng)起來(lái),算法實(shí)現(xiàn)如下:

# 整理留言信息返回格式def sortMsg(cursor): list = [] allMsg = dictfetchall(cursor) for i in range(len(allMsg)): tmpParent = allMsg[i] tmpChild = [] # 如果沒有屬于根評(píng)論,則搜索該評(píng)論下的所有子評(píng)論 if tmpParent.get(’parent_msg_id’) == None: tmpChild = bfs(tmpParent, allMsg) # 如果是子評(píng)論則跳過,子評(píng)論最終會(huì)出現(xiàn)在根評(píng)論的子節(jié)點(diǎn)中 else: continue tmpParent[’children’] = tmpChild # 格式化時(shí)間 tmpParent[’date’] = datetime.datetime.strftime(tmpParent[’date’], ’%Y-%m-%d %H:%M:%S’) list.append(tmpParent) return list# 搜索一條留言的所有子留言,廣度優(yōu)先import queuedef bfs(parent, allMsg): childrenList = [] q = queue.Queue() q.put(parent) while(not q.empty()): tmpChild = q.get() for i in range(len(allMsg)): if allMsg[i][’parent_msg_id’] is not None and allMsg[i][’parent_msg_id’] == tmpChild[’id’]:childrenList.append(allMsg[i])q.put(allMsg[i]) # 子留言列表按時(shí)間降序排序 childrenList = sorted(childrenList, key = lambda d: d[’date’], reverse = True) # 格式化日期格式 for item in childrenList: item[’date’] = datetime.datetime.strftime(item[’date’], ’%Y-%m-%d %H:%M:%S’) return childrenList

用postman測(cè)試接口,得到的json格式如下:

{ 'messages': [ { 'id': 12, 'date': '2020-05-31 12:19:43', 'content': '你好啊,太棒了', 'parent_msg_id': null, 'user_id': 5, 'username': 'wangwu', 'parent_msg_username': null, 'children': [] }, { 'id': 11, 'date': '2020-05-31 12:18:55', 'content': '的時(shí)刻層6666666632n2面的思考名稱看到什么材料是isdafjoisdjiojildsc', 'parent_msg_id': null, 'user_id': 3, 'username': 'zhangsan', 'parent_msg_username': null, 'children': [] }, { 'id': 5, 'date': '2020-05-29 19:09:33', 'content': '發(fā)的發(fā)射點(diǎn)發(fā)吖方吖是發(fā)是呵等方5愛的非4阿瑟東方 發(fā)', 'parent_msg_id': null, 'user_id': 4, 'username': 'lisi', 'parent_msg_username': null, 'children': [{ 'id': 13, 'date': '2020-05-31 12:20:12', 'content': '號(hào)好好好矮好矮好矮好好', 'parent_msg_id': 5, 'user_id': 6, 'username': 'zhaoliu', 'parent_msg_username': 'lisi'} ] }, { 'id': 1, 'date': '2020-05-29 19:06:21', 'content': 'fasfdsafas法阿薩德方吖65阿瑟東方5是的發(fā)', 'parent_msg_id': null, 'user_id': 1, 'username': 'student', 'parent_msg_username': null, 'children': [{ 'id': 7, 'date': '2020-05-29 19:29:29', 'content': 'hfhf2h22h222223232', 'parent_msg_id': 6, 'user_id': 1, 'username': 'student', 'parent_msg_username': 'zhaoliu'},{ 'id': 6, 'date': '2020-05-29 19:09:56', 'content': '而離開離開鄰居哦i據(jù)哦i報(bào)價(jià)哦v保健品45465', 'parent_msg_id': 4, 'user_id': 6, 'username': 'zhaoliu', 'parent_msg_username': 'mike'},{ 'id': 4, 'date': '2020-05-29 19:09:14', 'content': '發(fā)送端非場(chǎng)地薩擦手d5asd32 1dadsrndsac十多次ds出錯(cuò)', 'parent_msg_id': 2, 'user_id': 8, 'username': 'mike', 'parent_msg_username': 'lisi'},{ 'id': 3, 'date': '2020-05-29 19:08:56', 'content': '奮發(fā)惡法撒打發(fā)士大夫士大夫是大 大師傅撒', 'parent_msg_id': 2, 'user_id': 2, 'username': 'teacher', 'parent_msg_username': 'lisi'},{ 'id': 2, 'date': '2020-05-29 19:08:41', 'content': 'fasdfasdf發(fā)生的法撒旦飛灑多發(fā)點(diǎn)房地產(chǎn)', 'parent_msg_id': 1, 'user_id': 4, 'username': 'lisi', 'parent_msg_username': 'student'} ] } ], 'status_code': 200}

這個(gè)就是前臺(tái)所要的內(nèi)容了。

其實(shí)一開始我是很直觀地認(rèn)為是用深度優(yōu)先來(lái)取出層層嵌套的留言的,如下:

# 遞歸搜索一條留言的所有子留言,深度優(yōu)先def dfs(parent, allMsg): childrenList = [] for i in range(len(allMsg)): if allMsg[i][’parent_msg_id’] is not None and allMsg[i][’parent_msg_id’] == parent[’id’]: allMsg[i][’children’] = dfs(allMsg[i], allMsg) childrenList.append(allMsg[i]) return childrenList

這樣取出的json格式是這樣的:

{ 'messages': [ { 'id': 5, 'date': '2020-05-29 19:09:33', 'content': '發(fā)的發(fā)射點(diǎn)發(fā)吖方吖是發(fā)是呵等方5愛的非4阿瑟東方 發(fā)', 'parent_msg_id': null, 'user_id': 4, 'username': 'lisi', 'children': [{ 'id': 8, 'date': '2020-05-29T17:23:37', 'content': '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈呵呵呵呵呵呵', 'parent_msg_id': 5, 'user_id': 3, 'username': 'zhangsan', 'children': []} ] }, { 'id': 1, 'date': '2020-05-29 19:06:21', 'content': 'fasfdsafas法阿薩德方吖65阿瑟東方5是的發(fā)', 'parent_msg_id': null, 'user_id': 1, 'username': 'student', 'children': [{ 'id': 2, 'date': '2020-05-29T19:08:41', 'content': 'fasdfasdf發(fā)生的法撒旦飛灑多發(fā)點(diǎn)房地產(chǎn)', 'parent_msg_id': 1, 'user_id': 4, 'username': 'lisi', 'children': [ { 'id': 4, 'date': '2020-05-29T19:09:14', 'content': '發(fā)送端非場(chǎng)地薩擦手d5asd32 1dadsrndsac十多次ds出錯(cuò)', 'parent_msg_id': 2, 'user_id': 8, 'username': 'mike', 'children': [{ 'id': 6, 'date': '2020-05-29T19:09:56', 'content': '而離開離開鄰居哦i據(jù)哦i報(bào)價(jià)哦v保健品45465', 'parent_msg_id': 4, 'user_id': 6, 'username': 'zhaoliu', 'children': [ { 'id': 7, 'date': '2020-05-29T19:29:29', 'content': 'hfhf2h22h222223232', 'parent_msg_id': 6, 'user_id': 1, 'username': 'student', 'children': [] } ]} ] }, { 'id': 3, 'date': '2020-05-29T19:08:56', 'content': '奮發(fā)惡法撒打發(fā)士大夫士大夫是大 大師傅撒', 'parent_msg_id': 2, 'user_id': 2, 'username': 'teacher', 'children': [] }, { 'id': 9, 'date': '2020-05-29T17:27:13', 'content': 'alalla啦啦啦啦啦啦來(lái)的隊(duì)列李大水泛濫的薩拉發(fā) 的 第三方哈l', 'parent_msg_id': 2, 'user_id': 7, 'username': 'joke', 'children': [] } ]} ] } ], 'status_code': 200}

但仔細(xì)一想,實(shí)際頁(yè)面展示的時(shí)候肯定不能這樣一層層無(wú)限地嵌套下去,否則留言多了頁(yè)面就裝不下了,于是還是改成了兩層留言的格式,第二層使用廣度優(yōu)先搜索將樹轉(zhuǎn)為列表存儲(chǔ)。

2.2 新增留言接口

前臺(tái)提供留言內(nèi)容、留言者id以及父留言的id(如果不是回復(fù)信息的話就是空)

import datetime@require_http_methods([’POST’])def insertMsg(request): response = {} try: request.POST = request.POST.copy() request.POST[’date’] = datetime.datetime.now() msg = Message() msg.date = request.POST.get(’date’) msg.content = request.POST.get(’content’) msg.parent_msg_id = request.POST.get(’parent_msg_id’) msg.user_id = request.POST.get(’user_id’) msg.save() response[’msg’] = ’success’ response[’status_code’] = 200 except Exception as e: response[’error’] = str(e) response[’status_code’] = 500 return JsonResponse(response)

3.前臺(tái)設(shè)計(jì)

有了后臺(tái)提供的數(shù)據(jù),前臺(tái)展示就比較簡(jiǎn)單了。

留言板塊的設(shè)計(jì)我使用了Ant Design的留言組件。

留言界面主要由兩個(gè)組件所構(gòu)成——留言區(qū)組件以及評(píng)論表單的組件

3.1主視圖Messeage.vue

<template> <div> <comment-message @handleReply='handleReply' :commentList='comments'></comment-message> <comment-area @reload='reload' :parentMsgId='replyMsgId' :replyMsgUsername='replyMsgUsername'></comment-area> </div></template><script>import CommentMessage from 'components/common/comment/CommentMessage';import CommentArea from 'components/common/comment/CommentArea';import { findAllMsg } from 'network/ajax';export default { name: 'Message', components: { CommentMessage, CommentArea }, data() { return { comments: [], replyMsgId: '', replyMsgUsername: '' }; }, mounted() { findAllMsg() .then(res => { this.comments = res.data.messages; }) .catch(err => { console.log(err); this.$router.push('/500'); }); }, methods: { handleReply(data) { this.replyMsgId = data.msgId; this.replyMsgUsername = data.msgUsername; }, reload() { this.$emit('reload') } }};</script><style></style>

3.2 留言區(qū)域組件CommentMessage.vue:

<template> <div id='commentMsg'> <div v-if='isEmpty(commentList)' class='head-message'>暫無(wú)留言內(nèi)容</div> <div v-else class='head-message'>留言內(nèi)容</div> <comment @handleReply='handleReply' v-for='(item1, index) in commentList' :key='’parent-’ + index' :comment='item1' > <!-- 二層留言 --> <template #childComment v-if='!isEmpty(item1.children)'> <comment v-for='(item2, index) in item1.children' :key='’children-’ + index' :comment='item2' @handleReply='handleReply' ></comment> </template> </comment> </div></template><script>import Comment from './Comment';import Vue from 'vue';export default { name: 'CommentMessage', components: { Comment }, props: { commentList: { type: Array, default: [] } }, methods: { isEmpty(ls) { return ls.length === 0; }, handleReply(data) { this.$emit('handleReply', { msgId: data.msgId, msgUsername: data.msgUsername }); } }};</script><style scoped>.head-message { font-size: 20px; text-align: center;}</style>

3.3 留言區(qū)域由多個(gè)Comment留言組件所構(gòu)成,留言組件定義如下

<template> <a-comment> <span slot='actions' key='comment-basic-reply-to' @click='handlReply(comment.id, comment.username)' > <a href='http://www.gepszalag.com/bcjs/11442.html#my-textarea'>回復(fù)</a> </span> <a slot='author' style='font-size: 15px'>{{comment.username}}</a> <a v-if='comment.parent_msg_username' slot='author' >@{{comment.parent_msg_username}}</a> <a-avatar slot='avatar' :src='http://www.gepszalag.com/bcjs/require(’assets/images/login_logo.png’)' alt /> <p slot='content'>{{comment.content}}</p> <a-tooltip slot='datetime'> <span>{{comment.date}}</span> </a-tooltip> <slot name='childComment'></slot> </a-comment></template><script>export default { name: 'Comment', props: { comment: '' }, methods: { handlReply(msgId, msgUsername) { this.$emit('handleReply', { msgId, msgUsername }); } }};</script><style scoped>.reply-to { padding-left: 5px; color: #409eff; font-weight: 500; font-size: 15px;}</style>

3.4 添加留言或回復(fù)的表單組件CommentArea.vue

<template> <div> <a-comment id='comment-area'> <a-avatar slot='avatar' :src='http://www.gepszalag.com/bcjs/require(’assets/images/login_logo.png’)' alt='Han Solo' /> <div slot='content'> <a-form-item> <a-textarea :rows='4' v-model='content' /> </a-form-item> <a-form-item> <a-button html-type='submit' :loading='submitting' type='primary' @click='handleSubmit' >添加留言</a-button> </a-form-item> </div> </a-comment> </div></template><script>import {insertMsg} from ’network/ajax.js’export default { data() { return { content: '', submitting: false }; }, props: { parentMsgId: '', replyMsgUsername: '' }, watch: { replyMsgUsername() { document .querySelector('#my-textarea') .setAttribute('placeholder', '回復(fù): ' + '@' + this.replyMsgUsername); } }, methods: { handleSubmit() { if (!this.content) { return; } this.submitting = true; insertMsg(this.content, this.parentMsgId, this.$store.state.userId).then(res => { this.submitting = false; this.content = ''; document .querySelector('#my-textarea') .setAttribute('placeholder', ’’); this.$emit(’reload’) }).catch(err => { console.log(err); this.$router.push(’/500’) }) }, handleChange(e) { this.value = e.target.value; } }};</script>

組裝完成后實(shí)現(xiàn)的功能有:

留言界面的展示

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

點(diǎn)擊回復(fù)按鈕跳到留言表單(這里我直接用了a標(biāo)簽來(lái)錨定位,試過用scrollToView來(lái)平滑滾動(dòng)過去,但不知道為什么只有第一次點(diǎn)擊回復(fù)按鈕時(shí)才能平滑滾動(dòng)到,之后再點(diǎn)擊他就不滾動(dòng)了。。。),并把被回復(fù)者的用戶名顯示在placeholder中

使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼

點(diǎn)擊添加留言按鈕,清空placeholder,并自動(dòng)實(shí)現(xiàn)router-view的局部刷新(不是整頁(yè)刷新)顯示出新增的留言

局部刷新的實(shí)現(xiàn)就是通過代碼中的自定義事件 reload ,具體就是從表單組件開始發(fā)送 reload 事件,其父組件 Message.vue 收到后,再繼續(xù)發(fā)送 reload 事件給外層的視圖Home.vue,Home的再外層就是App.vue了,Home.vue的定義如下:

<template> <el-container class='main-el-container'> <!-- 側(cè)邊欄 --> <el-aside class='main-el-aside'> <side-bar></side-bar> </el-aside> <!-- 主體部分 --> <el-main> <el-main> <router-view @reload='reload' v-if='isRouterAlive'></router-view> </el-main> </el-main> </el-container></template><script>import SideBar from 'components/common/sidebar/SideBar';export default { name: 'Home', components: { SideBar }, data() { return { isRouterAlive: true }; }, props: { isReload: '' }, watch: { isReload() { this.reload(); } }, methods: { reload() { this.isRouterAlive = false; this.$nextTick(() => { this.isRouterAlive = true; }); } }};</script><style scoped>.main-el-container { height: 750px; border: 1px solid #eee;}.main-el-aside { background-color: rgb(238, 241, 246);}</style>

里面有一個(gè)reload方法,通過改變isRouterAlive來(lái)讓router-view先隱藏,再顯示,實(shí)現(xiàn)重新掛載。

到此這篇關(guān)于使用Vue+Django+Ant Design做一個(gè)留言評(píng)論模塊的示例代碼的文章就介紹到這了,更多相關(guān)Vue+Django+Ant Design留言評(píng)論內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 亚洲精品国产电影 | 日韩国产欧美亚洲 | 四虎永久免费在线 | 亚洲男人的天堂在线播放 | 国产日韩精品视频 | 久久这里精品 | 欧美三级在线 | 国产一区二区精品在线观看 | 国产高清视频一区二区 | 久久婷婷欧美 | 人人爱超碰 | 久久99精品久久久久久青青日本 | 91.com在线观看 | 激情999 | 新99热| 亚洲日韩中文字幕一区 | 欧美视频一区二区 | 日韩成人 | 欧美国产综合 | 久久国产精品视频 | 成年人黄色一级片 | 99视频精品 | 亚洲精品久久久久久久久久久 | 91av在线播放| 午夜黄色av| 午夜影院黄色 | 国产成人精品久久 | 99久久夜色精品国产亚洲1000部 | 中文字幕免费中文 | 欧美精品免费在线 | 日韩在线不卡 | 国产成人午夜高潮毛片 | 日韩在线免费观看视频 | 欧美午夜一区二区三区免费大片 | 欧美日韩一 | 亚洲欧美视频 | 亚洲精选免费视频 | 久久综合九色综合欧美狠狠 | 午夜免费影视 | 成人二区 | 97在线播放| 黄色片免费看. | 老司机福利在线观看 | 国产一区二区三区久久 | 久久99久| 欧美大片在线看免费观看 | 精品一区二区三区免费看 | 久久亚洲美女 | 国产1区在线观看 | 毛片网站大全 | 久草久 | 玖玖国产精品视频 | 中文字幕日韩欧美一区二区三区 | 久久精品久久久久电影 | 国产成人在线一区二区 | 日韩国产欧美视频 | 国产精品久久久久久久免费大片 | 日本jizz在线观看 | 国产黄色在线观看 | 亚洲精品一区在线观看 | 欧美日韩亚洲三区 | 国产精品久久久久久亚洲调教 | 综合二区 | 九九综合九九综合 | 精品成人一区 | 激情欧美日韩一区二区 | 久久亚洲综合 | av在线日韩| 麻豆一区 | 成人18视频在线观看 | 午夜视频 | 国产私拍视频 | 国产黄色在线播放 | 欧美一区免费 | 99亚洲国产精品 | 免费观看电视在线高清视频 | 亚洲毛片在线观看 | 色吊丝2288sds中文字幕 | 久久精品亚洲一区二区 | 国产精品久久久久久亚洲影视 | 久久久tv| 在线观看日韩 | 999视频 | 日韩欧美在线视频 | 黄色毛片在线观看 | 日韩一区二区三区在线观看 | 日韩高清在线播放 | 午夜在线电影 | 国产一区二区久久久 | 国产激情一区二区三区成人免费 | 中文字幕免费在线观看 | 日韩精品一区二区三区 | 电家庭影院午夜 | 亚洲欧美一区二区三区四区 | 日韩免费视频一区二区 | 夜添久久精品亚洲国产精品 | 亚洲九九精品 | 国产精品久久一区二区三区 | 国产一极毛片 | 日本在线一区二区 | 福利久久| 日韩成人在线观看 | 久久久二 | 国产欧美亚洲精品 | 久久a毛片 | 日韩三级在线 | 在线一区 | 亚洲综合色视频在线观看 | 亚州成人 | 一区二区色 | 成人精品视频 | 蜜臀网 | 91精品国产乱码久久久久久久久 | 羞羞视频在线观看入口 | 一区二区三区视频在线播放 | 美女91 | 久久久久久网址 | 成人在线网址 | av伊人网| 成人不卡视频 | 成年免费观看 | 中文字幕成人av | 美女三区 | h在线视频 | 日本欧美大片 | 欧洲免费毛片 | 精品久久久久久久久久久久久久 | 国内精品久久久久 | www麻豆| 欧美福利一区二区 | a国产精品 | 色综合免费视频 | 香蕉二区| 成人高清视频免费观看 | 2018天天操| 午夜一区二区三区 | 国产欧美日韩综合精品一区二区 | 四虎中文字幕 | 欧美日韩一区二区三区 | 四虎成人在线视频 | 国产中文字幕一区 | 久久中文视频 | 午夜看片在线观看 | 81精品国产乱码久久久久久 | 精品一区二区三区免费视频 | 国产一区二区在线视频观看 | 美国特级a毛片免费网站 | 精品一区国产 | 精品无人乱码区1区2区3区 | 国产一区二区在线免费观看 | 毛片毛片毛片毛片毛片毛片 | 久久99精品国产麻豆婷婷洗澡 | 国产不卡在线观看 | 国产日本欧美在线 | 中文av字幕 | 国产成人一区二区 | 国产一区二区在线免费观看 | 成人av免费 | 久久国产精品免费一区二区三区 | 99精品视频在线 | 男女视频网站 | 日日干夜夜骑 | 国产精品美女久久久久久久网站 | 在线伊人网 | 久久女同互慰一区二区三区 | 亚洲二区视频 | 欧美日韩在线观看中文字幕 | 日韩一区二 | 欧美国产日韩一区 | 亚洲中午字幕 | 精品国产乱码久久久久久88av | 欧美性大战久久久久久久蜜臀 | 91中文在线观看 | 久久久久久久成人 | 色乱码一区二区三区网站 | 精品自拍视频 | 久久精彩 | 免费观看黄a一级视频 | 国产精品国产三级国产aⅴ中文 | 国产目拍亚洲精品99久久精品 | 日韩av在线免费电影 | 精品国产乱码久久久久久密桃99 | 99精品欧美一区二区三区 | 国产视频成人 | 国产精品久久国产精品 | 国产精品一区二区不卡 | 欧美日本韩国一区二区 | 色橹橹欧美在线观看视频高清 | 91亚色 | 伊人av超碰久久久麻豆 | 午夜欧美 | 伊人伊人| 可以免费看黄视频的网站 | av日韩在线播放 | 91精品久久久久久久久久 | 玖玖综合网 | 爱爱视频网站 | 99精品热 | 久久精品性 | 久久综合久久综合久久综合 | 国产一级在线观看 | 国产最新网站 | 日韩一区二区在线免费 | 色综合免费 | 中文字幕一区二区三区不卡 | 91丝袜| 久久久久中文字幕 | 久久久久久久久久久久国产精品 | 高清视频一区二区三区 | 日韩美香港a一级毛片免费 国产综合av | 青青久在线视频 | 国产乱肥老妇国产一区二 | 国产一区二区三区久久 | 午夜免费一区二区播放 | 国产精品视屏 | 精品国产成人 | 中文字幕日韩一区二区不卡 | xxxx网| 国产色网 | 97超碰在线免费 | 青青久久北条麻妃 | 久久精品国产99 | 欧美色综合| 午夜激情影院 | 视频一区中文字幕 | 亚洲一二三区电影 | 久久99国产精品久久99大师 | 国产精品久久久久aaaa九色 | 欧美精品亚洲 | 一区二区三区免费在线观看 | 男女18免费网站视频 | 免费黄色毛片视频 | 国产一级片 | 希岛爱理在线 | 午夜精品一区 | 精品99久久久久久 | av一区二区三区在线观看 | 国产第一亚洲 | √新版天堂资源在线资源 | 午夜视频网 | 亚洲一区二区 | 国产精品成人一区二区三区夜夜夜 | 精品视频免费在线 | 免费二区 | 国产精品久久久久一区二区三区共 | 岛国免费 | 自拍偷拍欧美 | 超碰导航| 国产日韩免费 | 伊人一区 | 亚洲美女视频一区二区三区 | 欧美性一区二区三区 | 亚洲艹| 久久99精品久久久 | 久久亚洲一区二区三区四区 | 亚洲一区二区在线免费观看 | 日韩在线成人av | 日日夜夜免费精品视频 | 日韩精品一区二区三区 | 国产日韩视频在线观看 | 九九香蕉视频 | 最近的中文字幕在线看视频 | 超碰精品在线观看 | 免费午夜电影 | 福利网站在线观看 | 欧日韩不卡在线视频 | 99久久久精品 | 国产亚洲欧美一区二区三区 | 性一级录像片片视频免费看 | 黄久久久 | 国产性一级片 | 精品中文字幕在线 | 日韩视频一区二区三区 | 国产在线观看一区二区三区 | 天天干天天操天天舔 | 久一久久| 精品国产区 | 国产一区精品电影 | 久久激情综合 | 色爽av| 免费成人在线观看视频 | 美女视频黄色片 | 81精品国产乱码久久久久久 | 久久久久女人精品毛片九一韩国 | 欧美性网 | 天天艹久久 | 美女131mm久久爽爽免费 | 午夜电影福利 | 99热在线观看免费 | 粉色午夜视频 | 91精品国产乱码久久久久久久久 | 一区二区三区免费在线观看 | 精品国产不卡一区二区三区 | 亚洲成人动漫在线观看 | 亚洲精品久久久 | 亚洲久悠悠色悠在线播放 | 麻豆专区一区二区三区四区五区 | 精国产品一区二区三区四季综 | 午夜精品视频 | 久久久www | 欧美色性| 成人亚洲| 国产福利视频 | 二区视频 | 久久国产综合 | 国产精产国品一二三产区视频 | 毛片入口 | 欧美一二三区 | h网站在线观看 | 日韩极品视频 | 黄色电影天堂 | 国产日韩精品视频 | 亚洲国产二区 | 无码国模国产在线观看 | 国产午夜手机精彩视频 | 日韩中文字幕视频 | 中文字字幕一区二区三区四区五区 | 在线观看中文 | 99精品视频在线观看 | 日韩在线视频在线观看 | 国产乱码精品一区二区三区五月婷 | 国产日韩91 | 97高清国语自产拍 | 亚洲人成网站999久久久综合 | 一区二区三区四区在线播放 | 一级全黄少妇性色生活片免费 | 亚洲一区av | 久久国产精品免费一区二区三区 | 日本在线一区 | 91精品久久久久久 | 亚洲综合视频在线观看 | 成人日韩在线观看 | 一区二区在线免费观看 | 午夜在线 | 国产精品一卡二卡 | 日本欧美国产 | 成人午夜sm精品久久久久久久 | 中文字幕视频在线 | 涩涩视频在线观看 | 亚洲精品福利视频 | 精品久久久久久国产 | 欧美一区二区三区免费视频 | 成人午夜免费视频 | 一区二区三区欧美在线 | 国产亚洲欧美在线 | 欧美成人a∨高清免费观看 在线视频成人 | 中文字幕日韩一区二区不卡 | 9999久久久久 | 日韩视频中文字幕 | 日本久久国产 | 国产成人av一区二区三区 | 美女国产精品 | 欧美国产综合 | 99精彩视频 | 欧美精品区 | 操操操av | 久久久精品欧美一区二区免费 | 国产精品亚洲第一区在线暖暖韩国 | 99看片| 精品久久久久久 | 激情欧美一区二区三区中文字幕 | 一区二区三区的视频 | av三级 | 亚洲国产在 | 97久久久久久久久久久久 | 一区二区三区国产在线 | 国产精品视频一二三 | 久久一区二区三区四区 | 久久视频一区二区 | 色橹橹欧美在线观看视频高清 | 日韩城人网站 | 免费成人高清在线视频 | 亚洲成熟少妇视频在线观看 | 91精品一区二区三区久久久久久 | 免费视频爱爱太爽了 | 日韩在线观看视频一区 | 国产一区在线免费 | 黄色片在线免费观看 | 欧美人牲 | 狠狠天天 | 美女逼网站 | 精品99久久久久久 | 污视频在线免费观看 | 久久亚洲精品中文字幕 | 岛国一区 | 国产视频一区二区 | 成人免费福利视频 | 青楼18春一级毛片 | 欧美福利网 | 成人高清av| 国产成人精品免费 | 欧美激情精品久久久久久免费 | 天天天天天天天天操 | 亚洲一区二区中文字幕在线观看 | 操操操操操操 | 国产免费一区 | 欧美日韩一区二区三区四区 | 性一级录像片片视频免费看 | 男人天堂亚洲天堂 | 精产国产伦理一二三区 | 国产精品永久免费自在线观看 | 国产午夜精品美女视频明星a级 | 97视频人人澡人人爽 | 欧美性v | 91福利影院在线观看 | 国产情侣小视频 | 91精品国产乱码久久久久久 | 日本中文字幕一区 | 中文字幕乱码亚洲精品一区 | 中文亚洲欧美 | 久久国产欧美日韩精品 | 亚洲免费精品网站 | 99re6在线视频精品免费 | 欧美二区三区 | 五月综合久久 | 日韩一级免费在线观看 | 午夜电影网址 | 91精品国产91综合久久蜜臀 | 中文字幕一区二区三区乱码图片 | 精品无码久久久久久国产 | 黄网免费看 | 亚洲成人一区 | 日韩国产欧美在线观看 | 日韩视频一区二区三区 | av高清在线免费观看 | 91在线播 | 欧美一区二区三区视频 | av黄色在线免费观看 | 视频二区在线观看 | 国产黄色免费小视频 | 日韩91 | 嫩草网站| 91午夜在线| 亚洲国产精品一区二区久久 | 国产精品视频一区二区三区 | 99re国产| 亚洲在线视频 | 亚洲一区二区在线电影 | 九九热精品免费视频 | 久久久国产视频 | 久久国产欧美日韩精品 | 亚洲精品久久久久久久久久久 | 奇米在线777| 热re99久久精品国99热线看 | 久热精品视频在线播放 | 精品久久久久久亚洲综合网 | 91av视频在线观看 | 成人在线观看免费视频 | 日韩三区| 欧美日韩国产高清视频 | 欧美日韩一区二区三区在线观看 | 午夜日韩| 91伊人| 欧美成人a | 日韩免费| 中文字幕第一页在线 | 久久久久久久99精品免费观看 | 国产日韩精品视频 | 97精品国产 | 影音先锋在线看片资源 | 一区二区三区无码高清视频 | 免费黄色电影在线观看 | 丁香五月网久久综合 | 日韩精品一区二区三区在线观看 | 一区二区三区免费 | 狠狠久 | 男女视频在线看 | 一级视频毛片 | 欧美视频在线播放 | 国产精品视频一区二区三区不卡 | 毛片福利| 欧美日本乱大交xxxxx | 国产精品毛片一区二区三区 | 国产高清在线观看 | 久久精品久久久 | 久久久精品一区 | 巴西性猛交xxxx免费看久久久 | 欧美日韩国产一区二区 | 免费国产在线视频 | 精品久| 91网站在线看 | 超级乱淫片国语对白免费视频 | 在线观看免费黄色小视频 | 在线高清av | 精品国产欧美一区二区 | 伊人二区 | 欧美一级二级片 | 午夜亚洲电影 | 欧美中文字幕一区二区 | 欧美视频在线一区 | 成年人网站国产 | 中文字幕在线播放第一页 | 日韩精品一区二区三区视频播放 | 青青青久草 | 91视频网址 | japan国产精选videos | 国产三级网站 | ririsao久久精品一区 | 狠狠综合久久 | 日韩高清中文字幕 | 国产精品99久久久久久宅男 | 欧美精品在线观看 | 成人免费在线网址 | julia一区二区三区中文字幕 | 久久国产香蕉视频 | 九七超碰在线 | 国产精品日韩欧美 | 国产激情偷乱视频一区二区三区 | 精品久久久久一区二区国产 | 国内自拍视频在线观看 | 男女国产视频 | 亚洲精美视频 | 国产成人一区 | 欧美日韩在线不卡 | 亚洲精品一区二区在线 | www.中文字幕.com| 黄色小视频在线观看 | 成人免费大片黄在线播放 | 午夜电影网站 | 欧美日韩精品一区二区三区 | 91.成人天堂一区 | 中文字幕在线三区 | 91亚洲精品视频 | 中文字幕视频在线 | 久热精品视频在线播放 | 国产黄色网址在线观看 | 99精品欧美一区二区三区综合在线 | 国产一区二区三区在线免费观看 | 久久久久久久99精品免费观看 | 韩国精品一区 | 91资源在线观看 | 日韩久久午夜一级啪啪 | 亚洲视频一区在线 | 久久精品成人 | 欧美久久久久 | va在线 | 国产亚洲精品美女久久久久久久久久 | 中文字幕在线视频网站 | 91九色porny首页最多播放 | 久久久久无码国产精品一区 | 国产综合亚洲精品一区二 | 91久久久久久久久久久久久久 | 91xx在线观看 | 精品国产成人 | 毛片视频观看 | 亚洲国产精品久久久久秋霞不卡 | 婷五月综合| 337p日本粉嫩噜噜噜 | 精品久久久久久久 | 在线视频a | h视频免费看 | 国产精品久久久一区二区 | 91精品国产乱码久久久久久久久 | 在线观看精品自拍私拍 | 国产免费久久 | 狠狠干av| 国产欧美日韩精品一区二区三区 | 欧美三及片 | 91精品国产91久久久久久最新 | 国产精品久久久久aaaa九色 | 中文字幕在线观 | 精品久久久久av | 国产精品久久久久久久久久久久久 | av观看免费 | 久久亚洲国产精品 | 久久久久国产一级毛片高清版小说 | 国产成人片 | 欧美自拍视频一区 | 91免费小视频 | 亚洲高清视频一区二区 | 亚洲国产精品99久久久久久久久 | 欧美一级免费大片 | 国产精品一区二区三区在线 | 欧美一区久久 | 国产野精品久久久久久久不卡 | 中文字幕成人免费视频 | 国产成人免费视频网站高清观看视频 | 亚洲福利视频在线 | 91视频分类| 亚洲国产一区二区在线 | 国产精品久久久久久久久久 | 特级毛片在线 | 不卡一区二区三区四区 | 99久久视频| 午夜精品久久久久久久 | 青草视频网站 | 在线不卡视频 | 欧美午夜视频在线观看 | 9久久婷婷国产综合精品性色 | 粉嫩在线 | 日韩三区 | 国产精品色婷婷久久58 | 国语av在线 | 欧美一区在线观看视频 | 日韩91| 久久爱综合 | 日韩福利在线 | 色婷婷久久久swag精品 | 精品国产一区二区三区四区 | av网战 | 亚洲网色| 国产精品国产精品国产专区不片 | 午夜视频在线播放 | 亚洲综合区 | av中文字幕第一页 | 亚洲欧美日韩另类一区二区 | 国产精品久久久久久久久久妇女 | 国产精品第一国产精品 | 欧美一级淫片免费看 | 91麻豆精品国产91久久久更新时间 | 精品日韩一区二区 | 国产激情精品一区二区三区 | 日本人做爰大片免费观看一老师 | av天天操 | 亚洲欧美日韩在线一区 |