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

聊聊 Python 數(shù)據(jù)處理全家桶(MongoDB 篇)

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維 MongoDB
MongoDB 是基于分布式存儲(chǔ),由 C++ 編寫(xiě)的開(kāi)源的 NoSql 數(shù)據(jù)庫(kù)。

[[344490]]

本文轉(zhuǎn)載自微信公眾號(hào)「AirPython」,作者星安果。轉(zhuǎn)載本文請(qǐng)聯(lián)系A(chǔ)irPython公眾號(hào)。   

1. 前言

MongoDB 是基于分布式存儲(chǔ),由 C++ 編寫(xiě)的開(kāi)源的 NoSql 數(shù)據(jù)庫(kù)

MongoDB 的內(nèi)容存儲(chǔ)類似 JSON 對(duì)象,數(shù)據(jù)結(jié)構(gòu)包含 3 種

分別是:

數(shù)據(jù)庫(kù) - Databases

對(duì)應(yīng)關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)(Database)

集合 - Collection

對(duì)應(yīng)關(guān)系型數(shù)據(jù)庫(kù)中的 Table 表(Table)

文檔 - Document

對(duì)應(yīng)數(shù)據(jù)庫(kù)表中的一條數(shù)據(jù)(Row Data)

2. 準(zhǔn)備

Python 操作 MongoDB,常見(jiàn)的兩種方式是:Pymongo、Mongoengine

其中

  • Mongoengine:面相對(duì)象,針對(duì)文檔型數(shù)據(jù)庫(kù)的 ORM,直接繼承于 Document 文檔,對(duì)文檔進(jìn)行增刪改查
  • Pymongo:通過(guò) JSON 和 MongoDB 進(jìn)行通信,將 MongoDB 的數(shù)據(jù)映射成 Python 內(nèi)置的數(shù)據(jù)類型

首先,我們通過(guò) pip3 命令安裝依賴

  1. # 安裝依賴 
  2. # pymongo 
  3. pip3 install pymongo 
  4.  
  5. # mongoengine 
  6. pip3 install mongoengine 

下面分別對(duì) Pymongo 和 Mongoengine 進(jìn)行說(shuō)明

3. PyMongo

首先,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象

創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象有二種方式,分別是:多參數(shù)、字符串拼接

  1. import pymongo 
  2.  
  3. # 創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象的兩種方式 
  4. # 方式一:多參數(shù) 
  5. self.client = pymongo.MongoClient(host='ip地址', port=27017, username="root"password="123456"
  6.                                           authMechanism="SCRAM-SHA-1"
  7. # 方式二:拼接 
  8. # self.client = pymongo.MongoClient('mongodb://root:123456@ip地址:27017/'

接著,通過(guò)數(shù)據(jù)庫(kù)連接對(duì)象指定要操作的數(shù)據(jù)庫(kù)和操作集合

比如:要操作數(shù)據(jù)庫(kù) temp 中的 students 集合

  1. # 指定要操作的數(shù)據(jù)庫(kù):temp 
  2. self.db = self.client.temp 
  3.  
  4. # 指定要操作集合students 
  5. self.collection_students = self.db.students 

接著,我們來(lái)實(shí)現(xiàn)增刪改查操作

1、新增

新增包含:新增單條數(shù)據(jù)和多條數(shù)據(jù)

單條數(shù)據(jù)插入對(duì)應(yīng)的方法是:

  1. insert_one(dict) 

該方法的返回值類型為 InsertOneResult

通過(guò) inserted_id 屬性,可以獲取插入數(shù)據(jù)的 _id 值

  1. temp_data = { 
  2.     "id""1"
  3.     "name""xag"
  4.     "age": 18 
  5.  
  6. # 1、直接調(diào)用集合的insert_one()方法插入數(shù)據(jù)(插入一條數(shù)據(jù)) 
  7. result = self.collection_students.insert_one(temp_data) 
  8.  
  9. # 返回值為InsertOneResult,通過(guò)inserted_id屬性獲取_id的值 
  10. print(result.inserted_id) 

多條數(shù)據(jù)插入對(duì)應(yīng)的方法是:

  1. insert_many([dict1,dict2...]) 

該方法的返回值類型為 InsertManyResult

通過(guò) inserted_ids 屬性,可以獲取插入數(shù)據(jù)的 _id 屬性值列表

  1. # 2、插入多條數(shù)據(jù)-insert_many() 
  2. result = self.collection_students.insert_many([temp_data, temp_data2]) 
  3.  
  4. # 返回值為InsertManyResult,通過(guò)inserted_ids屬性獲取插入數(shù)據(jù)的_id列表值 
  5. print(result.inserted_ids) 

2、查詢

使用 PyMongo 查詢 MongoDB 數(shù)據(jù)庫(kù),常用方法如下:

  • 通過(guò)某一個(gè)屬性鍵值對(duì),去查詢一條記錄 - find_one()
  • 通過(guò) ObjectId 值去查詢某一條記錄 - find_one()
  • 通過(guò)某一個(gè)屬性鍵值對(duì),去查詢多條記錄 - find()
  • 通過(guò)大于、小于、等于等條件去比較查詢
  • 正則匹配查詢

前面 3 種查詢方式,由于比較簡(jiǎn)單,直接給出實(shí)例:

  1. def manage_query(self): 
  2.     """查詢數(shù)據(jù)""" 
  3.     # 1、通過(guò)某個(gè)屬性鍵值對(duì),去查詢一條記錄 find_one() 
  4.     # 返回值為字典類型 
  5.     # {'_id': ObjectId('5f5c437cfe49fa9a16664179'), 'id''1''name''xag''age': 18} 
  6.     result = self.collection_students.find_one({"name""xag"}) 
  7.     print(result) 
  8.  
  9.     # 2、通過(guò)ObjectId值去查詢某一條記錄 
  10.     result = self.collection_students.find_one({"_id": ObjectId('5f5c437cfe49fa9a16664179')}) 
  11.     print(result) 
  12.  
  13.     # 3.1 查詢多條記錄 find() 
  14.     # 返回值為一個(gè)游標(biāo)(生成器),pymongo.cursor.Cursor 
  15.     result_lists = self.collection_students.find({"name":"xag"}) 
  16.     print(result_lists) 
  17.     for item in result_lists: 
  18.         print(item) 

條件比較查詢,包含:大于($gt)、大于等于($gte)、小于($lt)、小于等于($lte)、不等于($ne)、在范圍內(nèi)($in)、不在范圍內(nèi)($nin)

比如:查詢年齡大于 18 歲的數(shù)據(jù)

  1. # 3.2 條件比較查詢,包含大于($gt)、大于等于($gte)、小于($lt)、小于等于($lte)、不等于($ne)、在范圍內(nèi)($in)、不在范圍內(nèi)($nin) 
  2. # 查詢年齡大于18歲的記錄 
  3. result = self.collection_students.find({'age': {'$gt': 18}}) 
  4. for item in result: 
  5.     print(item) 

正則匹配查詢,包含:

  • $regex:匹配正則表達(dá)式
  • $exists:屬性是否存在
  • $type:數(shù)據(jù)類型判斷
  • $mod:數(shù)據(jù)模操作
  • $text:文本包含查詢
  • $where:高級(jí)條件查詢

比如,查詢 name 值以 "xag" 開(kāi)頭的數(shù)據(jù)

  1. # 正則匹配查詢 
  2. results = self.collection_students.find({'name': {'$regex''^xag.*'}}) 
  3. for item in results: 
  4.     print(item) 

關(guān)于查詢更加復(fù)雜的功能可以參考:

https://docs.mongodb.com/manual/reference/operator/query/

3、更新

更新操作包含:更新一條記錄和更新多條記錄

其中,更新一條記錄對(duì)應(yīng)的方法是:

  1. update_one(query,update_content) 

參數(shù)包含:查詢的條件、要修改的內(nèi)容

  1. # 1、修改一條記錄 update_one(query,update_data) 
  2. # 方法中有兩個(gè)參數(shù),分別是:查詢條件、要修改的內(nèi)容 
  3. # 查詢條件 
  4. query_condition = {"name""xag"
  5. # 要修改的內(nèi)容 
  6. update_content = {"$set": {"name""星安果"}} 
  7. # 使用update_one() 方法進(jìn)行更新一條記錄 
  8. result = self.collection_students.update_one(query_condition, update_content) 

通過(guò)返回的結(jié)果可以獲取查詢匹配的記錄個(gè)數(shù)及影響的記錄個(gè)數(shù)

  1. # matched_count:匹配的記錄個(gè)數(shù) 
  2. # modified_count:影響的記錄個(gè)數(shù) 
  3. print(result.matched_count, result.modified_count) 

更新多條記錄對(duì)應(yīng)的方法是:

  1. update_many(query,update_content) 

方法中的參數(shù)、返回值與修改單條記錄類似

  1. # 2、修改多條記錄 update_many(query,update_data) 
  2. # 查詢條件 
  3. query_condition = {"name": {"$regex""^星.*"}} 
  4. # 要修改的內(nèi)容 
  5. update_content = {"$set": {"name""xag"}} 
  6. # 將文檔中name以星開(kāi)頭的記錄都設(shè)置為xag 
  7. result = self.collection_students.update_many(query_condition, update_content) 
  8. print(result) 
  9. print(result.matched_count, result.modified_count) 

4、刪除

刪除同樣包含:刪除查詢到的第一條記錄、刪除查詢到的所有記錄

分別對(duì)應(yīng)的方法是:delete_one(query)、delete_many(query)

另外,在返回結(jié)果中可以獲取到真實(shí)被刪除的數(shù)目

  1. def manage_remove(self): 
  2.     ""
  3.     刪除操作 
  4.     :return
  5.     ""
  6.     # 1、刪除查詢到的第一條記錄 delete_one() 
  7.     # result = self.collection_students.delete_one({'name'"xag2"}) 
  8.     # print(result) 
  9.     # 刪除的數(shù)目 
  10.     # print(result.deleted_count) 
  11.  
  12.     # 2、刪除多條記錄 delete_many() 
  13.     result = self.collection_students.delete_many({'name'"xag"}) 
  14.     print(result) 
  15.     # 刪除的數(shù)目 
  16.     print(result.deleted_count) 

5、計(jì)數(shù)和排名

常用的方法包含:

  • limit(num):限制返回的結(jié)果數(shù)量
  • skip(num):忽略 num 個(gè)元素,從 num + 1 個(gè)元素開(kāi)始查看
  • count_documents():查看集合中所有的文檔數(shù)量,也可以根據(jù)條件去查詢滿足的文檔數(shù)量
  • sort():升序或者降序
  1. def manage_count_and_sort(self): 
  2.     ""
  3.     計(jì)數(shù)和排序 
  4.     :return
  5.     ""
  6.     # 1、限制返回的結(jié)果數(shù)量 - limit() 
  7.     # result = self.collection_students.find().limit(2) 
  8.     # for item in result: 
  9.     #     print(item) 
  10.  
  11.     # 2、偏移  skip() 
  12.     # 比如:忽略前面兩個(gè)元素,從第3個(gè)元素開(kāi)始查看 
  13.     # result = self.collection_students.find().skip(2) 
  14.     # print([result['name'for result in result]) 
  15.  
  16.     # 3.1 查詢出集合中所有的文檔數(shù)量 count_documents() 
  17.     # result = self.collection_students.count_documents({}) 
  18.     # print(result) 
  19.  
  20.     # 3.2 根據(jù)條件去查詢,然后判斷結(jié)果數(shù)目 
  21.     # query_regex = {'name': {'$regex''^xag.*'}} 
  22.     # result = self.collection_students.count_documents(query_regex) 
  23.     # print(result) 
  24.  
  25.     # 4、排序 sort() 
  26.     # pymongo.ASCENDING:升序,DESCENDING:降序 
  27.     result = self.collection_students.find().sort('name', pymongo.DESCENDING) 
  28.     print([result['name'for result in result]) 

4. Mongoengine

在使用 Mongoengine 操作 MongoDB 之前,需要先定義一個(gè) Document 的子類

該子類對(duì)應(yīng) MongoDB 中的文檔,內(nèi)部加入的靜態(tài)變量(包含:類型、長(zhǎng)度等)對(duì)應(yīng)數(shù)據(jù)庫(kù)文檔中的數(shù)據(jù)

  1. from mongoengine import * 
  2.  
  3. # Document的子類,對(duì)應(yīng)文檔對(duì)象 
  4. class Student(Document): 
  5.     name = StringField(required=True, max_length=500) 
  6.     age = IntField(required=Truedefault=18) 
  7.     create_time = DateTimeField(default=datetime.now) 
  8.  
  9.     # 配置元數(shù)據(jù) 
  10.     # 指定集合為student 
  11.     meta = {'collection''student''strict'False

利用 Mongoengine 內(nèi)置的 connect() 方法,連接指定的數(shù)據(jù)庫(kù)

  1. # 連接數(shù)據(jù)庫(kù)temp 
  2. def __init__(self): 
  3.     # 連接數(shù)據(jù)庫(kù) 
  4.     # 數(shù)據(jù)庫(kù)名稱:temp 
  5.     # auth方式:SCRAM-SHA-1 
  6.     result = connect('temp', host='ip地址', port=27017, 
  7.                      username='root'password='123456', authentication_source='admin'
  8.                      authentication_mechanism="SCRAM-SHA-1"
  9.     print(result) 

接著,我們來(lái)實(shí)現(xiàn)增刪改查操作

1、新增

使用 Mongoengine 新增一條記錄到數(shù)據(jù)庫(kù)非常方便

只需要實(shí)例化一個(gè)文檔對(duì)象,調(diào)用 save() 方法,即可以存儲(chǔ)一條記錄到數(shù)據(jù)庫(kù)當(dāng)中

  1. def insert(self): 
  2.     ""
  3.     插入數(shù)據(jù) 
  4.     :return
  5.     ""
  6.     person = Student(name='xag2', age=20) 
  7.     person.save() 

2、查詢

常見(jiàn)的查詢操作包含:

  • 查詢集合中的所有記錄
  • 查詢第一條記錄
  • 通過(guò)主鍵 _ID,來(lái)查詢數(shù)據(jù)
  • 條件查詢

對(duì)應(yīng)的代碼如下:

  1. def query(self): 
  2.     ""
  3.     普通查詢 
  4.     :return
  5.     ""
  6.     # 1、查看集合中所有數(shù)據(jù) 
  7.     # students = Student.objects.all() 
  8.     # print([item['name'for item in students]) 
  9.  
  10.     # 2、查詢第一條記錄 
  11.     # student = Student.objects.first() 
  12.     # print(student.name, student.age, student.create_time) 
  13.  
  14.     # 3、通過(guò)主鍵_ID來(lái)查詢數(shù)據(jù) 
  15.     result = Student.objects.filter(pk="5f5c5b34f5b0c049707a1710").first() 
  16.     print(result.name, result.age, result.create_time) 
  17.  
  18.     # 4、條件查詢 
  19.     # 查詢年齡在18-20歲的數(shù)據(jù) 
  20.     # __gte:大于等于;__lte:小于等于 
  21.     # 默認(rèn)是升序,可以加一個(gè):-,代表逆序 
  22.     # students = Student.objects(age__gte=18, age__lte=20).order_by('name'
  23.     students = Student.objects(age__gte=18, age__lte=20).order_by('-name'
  24.     # for item in students: 
  25.     #     print(item.name, item.age, item.create_time) 

值得一提的是,Mongoengine 提供了關(guān)鍵字 Q 來(lái)實(shí)現(xiàn)高級(jí)查詢

比如:查詢 name 字段值為 xag,年齡為 18 歲的數(shù)據(jù)

  1. def query_advance(self): 
  2.     ""
  3.     高級(jí)查詢 
  4.     :return
  5.     ""
  6.     # 查看name為xag,age為18的記錄的第一條 
  7.     student = Student.objects(Q(name="xag") & Q(age=18)).first() 
  8.     print(student.name, student.age, student.create_time) 

進(jìn)階操作可以參考:

https://docs.mongoengine.org/guide/querying.html

3、更新

Mongoengine 提供了 filter() 和 update() 兩個(gè)方法,分別用于過(guò)濾待更新的數(shù)據(jù),指定的更新內(nèi)容

  1. def update(self): 
  2.     ""
  3.     更新記錄 
  4.     :return
  5.     ""
  6.     # 1、修改所有記錄 
  7.     # 修改name為xag的年齡都減少1歲 
  8.     # 增加一歲:inc__age=1 
  9.     # 減少一歲:dec__age=1 
  10.     # Student.objects.filter(name="xag").update(dec__age=1) 
  11.     # Student.objects.filter(name="xag").update(inc__age=1) 
  12.  
  13.     # name為xag,age小于18的的所有記錄,更新為age=23 
  14.     # __lt:小于 
  15.     # __lte:小于等于 
  16.     # __gt:大于 
  17.     # __gte:大于等于 
  18.     # Student.objects.filter(name="xag", age__lt=18).update(age=23) 
  19.     # Student.objects.filter(age__lte=20).update(age=23) 

如果只需要更改查詢到的第一條記錄,可以使用 update_one() 方法

  1. # 2、修改一條記錄 
  2. # 年齡減少5歲 
  3. Student.objects.filter(name='xag').update_one(dec__age=5) 

4、刪除

刪除操作對(duì)應(yīng) delete() 方法

同樣,可以利用 filter() 和 first() 方法限制要?jiǎng)h除的范圍

  1. def delete(self): 
  2.     ""
  3.     刪除數(shù)據(jù) 
  4.     :return
  5.     ""
  6.     # 1、刪除查詢到的第一條記錄 
  7.     # Student.objects.filter(name="xag").first().delete() 
  8.  
  9.     # 2、刪除多條記錄 
  10.     # Student.objects.filter(name="xag").delete() 
  11.  
  12.     # 刪除name值以xag開(kāi)頭的所有記錄 
  13.     Student.objects.filter(name__startswith="xag").delete() 

 

5.最后

本篇文章講解了 Python 操作 MongoDB,最常用的兩種使用方式

 

責(zé)任編輯:武曉燕 來(lái)源: AirPython
相關(guān)推薦

2020-09-27 08:36:21

Python Memcached緩存

2021-08-11 12:07:12

PythonPgSQL數(shù)據(jù)

2020-09-24 06:49:34

PythonRedis

2023-07-31 08:21:22

語(yǔ)法校對(duì)器Pick

2024-05-15 09:53:22

2013-08-26 09:36:27

大數(shù)據(jù)NoSQLMongoDB

2022-02-09 15:23:41

大數(shù)據(jù)流計(jì)算Spark

2025-04-17 08:00:00

前端UniApp數(shù)據(jù)存儲(chǔ)

2022-07-15 08:45:07

slotVue3

2024-01-31 23:22:35

vaexPython庫(kù)

2017-09-13 15:05:10

React前端單元測(cè)試

2017-09-10 17:41:39

React全家桶單元測(cè)試前端測(cè)試

2025-09-05 00:00:00

前端開(kāi)發(fā)AI

2021-03-16 10:12:24

python內(nèi)置函數(shù)

2023-12-12 11:06:37

PythonPandas數(shù)據(jù)

2023-09-25 13:19:41

pandasPython

2018-12-07 14:50:35

大數(shù)據(jù)數(shù)據(jù)采集數(shù)據(jù)庫(kù)

2025-06-16 07:07:03

Java數(shù)據(jù)Jackson

2020-11-02 15:56:04

大數(shù)據(jù)數(shù)據(jù)庫(kù)技術(shù)

2017-07-21 14:22:17

大數(shù)據(jù)大數(shù)據(jù)平臺(tái)數(shù)據(jù)處理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国精品一区二区| av丝袜在线| 国精品**一区二区三区在线蜜桃| 久久的精品视频| 日本网站在线看| 天天色天天射天天综合网| 粉嫩蜜臀av国产精品网站| 高清欧美性猛交| 在线观看国产免费视频| 成人av免费电影网站| 欧美激情一区二区三区在线| 国产原创欧美精品| 精品亚洲aⅴ无码一区二区三区| 粉嫩91精品久久久久久久99蜜桃| 国产精品人人做人人爽人人添| 91精品视频免费看| 国产网友自拍视频| 国产一区二区电影在线观看| 91精品国产91久久久久久最新毛片| 日韩欧美视频免费在线观看| 日本在线视频1区| 毛片av一区二区| 久久久久久久国产精品视频| 人妻av无码一区二区三区| 成人豆花视频| 狠狠做深爱婷婷久久综合一区 | aaa免费在线观看| 手机看片福利在线| 毛片av一区二区| 91精品国产电影| 多男操一女视频| 午夜欧洲一区| 日韩免费观看高清完整版| 国产1区2区3区中文字幕| 国产资源在线观看| 狠狠狠色丁香婷婷综合久久五月| 欧美一级片久久久久久久| 四虎国产成人精品免费一女五男| 韩国精品福利一区二区三区| 欧美精品乱码久久久久久| 99热在线这里只有精品| xvideos国产在线视频| 91视频xxxx| 91情侣在线视频| 丰满肥臀噗嗤啊x99av| 国产超碰人人模人人爽人人添| 国产主播精品| 一区二区三区高清国产| 免费看黄色片的网站| 欧美日韩一区二区三区不卡| 日本精品视频一区| 日本精品专区| 99re热视频这里只精品| 国产精品国产亚洲精品看不卡15 | 污片在线观看一区二区| 熟妇熟女乱妇乱女网站| 国产69精品久久app免费版| 不卡的电视剧免费网站有什么| 91精品国产自产在线| 成人a v视频| 亚洲欧美日本视频在线观看| 国内精品美女av在线播放| 国产成人av免费在线观看| 国产中文字幕一区二区三区 | 国产精品久久久久久五月尺| 天天综合天天干| 激情亚洲网站| 色综合久综合久久综合久鬼88| 天堂av免费在线| 不卡在线一区二区| 这里只有精品久久| 国产传媒国产传媒| 俺要去色综合狠狠| 日韩国产高清视频在线| 中文字幕在线视频播放| 国内自拍欧美| 精品一区电影国产| 全黄一级裸体片| 少妇高潮一区二区三区| 亚洲美女激情视频| 女同毛片一区二区三区| 伊甸园亚洲一区| 亚洲欧美日韩国产成人| 天天舔天天操天天干| 欧美亚洲国产精品久久| 在线观看视频99| 五月天免费网站| 国产精品久久久久久影院8一贰佰| 最近2019中文字幕在线高清| 精品黑人一区二区三区观看时间| 思热99re视热频这里只精品| 国产一区二区三区在线视频| 麻豆一区在线观看| 午夜视频精品| 欧美一级高清免费| 天天天天天天天干| 国产不卡视频一区二区三区| 精品无码久久久久久久动漫| 91美女视频在线| 亚洲午夜三级在线| 爱情岛论坛亚洲首页入口章节| 韩国一区二区三区视频| 亚洲免费精彩视频| 欧美成人手机视频| 日韩国产精品久久| 97se亚洲综合在线| 最新电影电视剧在线观看免费观看| 一区二区久久久久久| 苍井空浴缸大战猛男120分钟| 久久天堂久久| 夜夜嗨av色一区二区不卡| 国产小视频在线观看免费| 奇米在线7777在线精品 | gogogo高清免费观看在线视频| 国产精品调教| 久久精品视频网站| 波多野结衣视频网址| 成人在线视频一区| 在线电影看在线一区二区三区| 久草在线中文最新视频| 日韩欧美一区中文| 久久久久久久久久97| 久久综合影音| 激情欧美一区二区三区中文字幕| a级毛片免费观看在线| 欧洲一区二区av| 中文文字幕文字幕高清| 国产精品国码视频| 亚洲jizzjizz日本少妇| 2021av在线| 日韩欧美主播在线| 日韩aaaaa| 亚洲成人在线| 成人91视频| av在线网址观看| 欧美猛男男办公室激情| 免费在线观看a视频| 亚洲永久免费| 精品国产_亚洲人成在线| 美女精品导航| 精品国产一区二区三区av性色| 秋霞欧美一区二区三区视频免费| 国产私拍福利精品视频二区| 四虎永久国产精品| 日本高清视频www| 一区二区三区成人| 国产又粗又猛大又黄又爽| 久久国产精品亚洲人一区二区三区 | 国产白丝在线观看| 日韩欧美国产wwwww| 久草视频手机在线| 国产一区二区三区美女| 中文字幕精品在线播放| 欧美国产中文高清| 欧美激情高清视频| 男人天堂网在线视频| 午夜精品福利一区二区三区蜜桃| 69xxx免费视频| 亚洲精品九九| 欧美另类高清视频在线| 午夜精品久久久久久久久久蜜桃| 亚洲欧美日韩在线高清直播| 青青国产在线视频| 欧美激情一区在线观看| 久久久久久久久久一区| 亚洲香蕉av| 丁香婷婷久久久综合精品国产| sqte在线播放| 日韩精品免费在线| 久久久黄色大片| 国产精品亲子伦对白| 色偷偷中文字幕| 悠悠资源网久久精品| 快播亚洲色图| 国产黄色精品| 欧美第一页在线| 天天操天天舔天天干| 色综合久久久久综合| 亚洲不卡的av| 国产东北露脸精品视频| 黄色免费视频大全| 日韩精品电影| 国产一区二区精品免费| 欧洲亚洲两性| 欧美成人激情视频| 天堂影院在线| 欧美二区三区的天堂| 国产极品美女高潮无套嗷嗷叫酒店| 91伊人久久大香线蕉| mm131亚洲精品| 狠狠色丁香久久综合频道| 欧美精品一区二区三区在线四季| 色成人综合网| 57pao成人永久免费视频| 黄网页免费在线观看| 日韩av中文字幕在线免费观看| 在线观看毛片av| 同产精品九九九| 国产小视频你懂的| 26uuu国产在线精品一区二区| 免费在线观看污网站| 国产精品毛片一区二区三区| 国产高清免费在线| 国产成人调教视频在线观看 | 曰本一区二区三区视频| 91视频免费在线| 亚洲美女久久精品| 欧美裸身视频免费观看| xxxxx日韩| 精品网站999www| wwwav在线播放| 欧美美女喷水视频| 中文字幕国产在线观看| 一区二区三区免费看视频| 少妇无套高潮一二三区| 99精品久久久久久| 国产探花一区二区三区| 蜜臀av一级做a爰片久久| 男人用嘴添女人下身免费视频| 888久久久| 天堂资源在线亚洲视频| 最新国产一区| 国语精品中文字幕| 51vv免费精品视频一区二区 | 欧美一级黄色影院| 亚洲高清免费| 69精品丰满人妻无码视频a片| 日韩精品免费一区二区在线观看 | 国产中文字幕在线视频| 日韩成人av网| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 精品视频二区| 亚洲国产精品成人va在线观看| www.四虎在线观看| 91精品国产高清一区二区三区 | 亚洲天堂免费在线| 日韩a在线观看| 精品无人区乱码1区2区3区在线 | 日韩中文字幕高清| 懂色av中文一区二区三区天美| 久久午夜无码鲁丝片午夜精品| 亚洲私人影院在线观看| 国产免费美女视频| 日韩毛片在线免费观看| 强制高潮抽搐sm调教高h| 中文字幕免费一区| 久久精品色妇熟妇丰满人妻| 91在线免费播放| av影片在线播放| 成人午夜电影网站| 亚洲国产精品无码久久久久高潮| av成人免费在线观看| www.日本高清| 久久精品人人爽人人爽| 99久久久无码国产精品衣服| 欧美国产一区视频在线观看| 妖精视频在线观看免费| 中文字幕视频一区| 国产精品成人免费观看| 亚洲国产精品一区二区尤物区| 久久精品视频6| 欧美网站在线观看| 超碰在线97观看| 91精品国产综合久久婷婷香蕉| 国产日韩欧美一区二区东京热| 日韩免费看网站| 深夜福利在线看| 一区三区二区视频| 快射av在线播放一区| 欧美国产视频日韩| 亚洲伊人av| 国产精品视频网站| 欧美h版在线观看| 乱色588欧美| 久久视频国产| 日本男女交配视频| 免费欧美日韩| 亚洲va在线va天堂va偷拍| 懂色一区二区三区免费观看 | 伊人久久大香线蕉| 一区二区在线观| 韩日视频一区| 黄色aaa级片| 高潮精品一区videoshd| 免费观看a级片| 又紧又大又爽精品一区二区| 日本午夜视频在线观看| 欧美精品视频www在线观看| 欧美一级一区二区三区| 亚洲天堂第二页| 国产经典三级在线| 国产精品男人的天堂| 荡女精品导航| 一区二区三区在线视频111| 亚洲国产精品第一区二区| 蜜桃免费在线视频| 成人爱爱电影网址| 亚洲aaa视频| 狠狠操狠狠色综合网| 国产黄a三级三级看三级| 亚洲性无码av在线| 激情av在线| 成人免费激情视频| 亚洲人成网www| 人人妻人人澡人人爽欧美一区双 | 一级淫片在线观看| 91麻豆国产香蕉久久精品| 免费在线观看av网址| 欧美亚洲愉拍一区二区| 视频三区在线观看| 欧美激情videoshd| 麻豆国产一区二区三区四区| 日本一区二区在线视频| 99精品国产一区二区青青牛奶| 激情文学亚洲色图| 欧美国产精品中文字幕| 日本一区二区三区精品| 亚洲成人精品久久久| 51xtv成人影院| 国产日韩精品在线| 国产精品一区二区不卡视频| 一区二区的视频| 国产精品一区二区视频| 泷泽萝拉在线播放| 亚洲免费观看高清完整版在线 | 亚洲观看高清完整版在线观看| 中日精品一色哟哟| 亚洲欧美999| 国产精品25p| 成人黄视频免费| 91tv精品福利国产在线观看| 天天爽人人爽夜夜爽| 久久精品一区蜜桃臀影院| 可以免费在线观看的av| 欧美精品一区二区不卡| 美女精品导航| 99国产视频| 黄色成人91| 亚洲最大视频网| 亚洲一区二三区| 国产综合在线播放| 国语自产精品视频在线看| eeuss国产一区二区三区四区| 黄色特一级视频| 国产sm精品调教视频网站| 欧美久久久久久久久久久久| 日韩亚洲欧美成人一区| 国产网友自拍视频导航网站在线观看| 国产精品欧美一区二区三区奶水| 欧美一区电影| 在线观看免费视频高清游戏推荐| 国产精品三级在线观看| 亚洲无码精品国产| 麻豆成人在线看| 三级欧美日韩| www.av片| 久久一区二区视频| 国产精品第六页| 色偷偷888欧美精品久久久| av成人在线网站| 国产精品igao激情视频 | 国产精品区一区二区三含羞草| 亚洲毛片视频| 人妻少妇一区二区| 欧美在线观看一二区| 拍真实国产伦偷精品| 97人人模人人爽人人少妇| 影音先锋中文字幕一区二区| 性欧美丰满熟妇xxxx性仙踪林| 色av成人天堂桃色av| 久操视频在线播放| 成人区精品一区二区| 亚洲欧美日韩综合国产aⅴ| 丰满的亚洲女人毛茸茸| 91麻豆精品国产自产在线 | 欧美精品色视频| 精品女厕一区二区三区| www.在线视频.com| 69174成人网| 欧美亚洲免费| 你懂得在线观看| 亚洲国产精品热久久| 999国产精品亚洲77777| 久久www视频| 国产日产欧产精品推荐色 | 国产成a人亚洲精| 日韩精品久久久久久免费| 日韩一中文字幕| 国产伦乱精品| www.色就是色.com| 精品久久久久久中文字幕一区奶水| 第一福利在线| 俄罗斯精品一区二区三区| 日韩综合在线视频| 免费一级a毛片夜夜看 | 欧美绝品在线观看成人午夜影视| 成人在线高清免费| 亚洲精品中文字幕在线| 成人av网站大全| 国产人妖在线播放|