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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLAlchemy 使用经验

發布時間:2025/3/20 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLAlchemy 使用经验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

上篇文章提到了,最近在用 Python 做一個網站。除了? Tornado ?,主要還用到了? SQLAlchemy 。這篇就是介紹我在使用 SQLAlchemy 的過程中,學到的一些知識。

首先說下,由于最新的 0.8 版還是開發版本,因此我使用的是 0.79 版,API 也許會有些不同。
因為我是搭配 MySQL InnoDB 使用,所以使用其他數據庫的也不能完全照搬本文。

接著就從安裝開始介紹吧,以 Debian/Ubuntu 為例(請確保有管理員權限):
  • MySQL
    apt-get install mysql-server
    apt-get install mysql-client
    apt-get install libmysqlclient15-dev
  • python-mysqldb
    apt-get install python-mysqldb
  • easy_install
    wget http://peak.telecommunity.com/dist/ez_setup.py
    python ez_setup.py
  • MySQL-Python
    easy_install MySQL-Python
  • SQLAlchemy
    easy_install SQLAlchemy
  • 如果是用其他操作系統,遇到問題就 Google 一下吧。我是在 Mac OS X 上開發的,途中也遇到些問題,不過當時沒記下來……
    值得一提的是我用了 MySQL-Python 來連 MySQL,因為不支持異步調用,所以和 Tornado 不是很搭。不過性能其實很好,因此以后再去研究下其他方案吧……

    裝好后就可以開始使用了:
    from sqlalchemy import create_engine from sqlalchemy.orm import sessionmakerDB_CONNECT_STRING = 'mysql+mysqldb://root:123@localhost/ooxx?charset=utf8' engine = create_engine(DB_CONNECT_STRING, echo=True) DB_Session = sessionmaker(bind=engine) session = DB_Session() 這里的 DB_CONNECT_STRING 就是連接數據庫的路徑。“mysql+mysqldb”指定了使用 MySQL-Python 來連接,“root”和“123”分別是用戶名和密碼,“localhost”是數據庫的域名,“ooxx”是使用的數據庫名(可省略),“charset”指定了連接時使用的字符集(可省略)。
    create_engine() 會返回一個數據庫引擎,echo 參數為 True 時,會顯示每條執行的 SQL 語句,生產環境下可關閉。
    sessionmaker() 會生成一個數據庫會話類。這個類的實例可以當成一個數據庫連接,它同時還記錄了一些查詢的數據,并決定什么時候執行 SQL 語句。由于 SQLAlchemy 自己維護了一個數據庫連接池(默認 5 個連接),因此初始化一個會話的開銷并不大。對 Tornado 而言,可以在 BaseHandler 的 initialize() 里初始化:
    class BaseHandler(tornado.web.RequestHandler): def initialize(self): self.session = models.DB_Session() def on_finish(self): self.session.close() 對其他 Web 服務器來說,可以使用? sqlalchemy.orm.scoped_session ,它能保證每個線程獲得的 session 對象都是唯一的。不過 Tornado 本身就是單線程的,如果使用了異步方式,就可能會出現問題,因此我并沒使用它。

    拿到 session 后,就可以執行 SQL 了:
    session.execute('create database abc') print session.execute('show databases').fetchall() session.execute('use abc') # 建 user 表的過程略 print session.execute('select * from user where id = 1').first() print session.execute('select * from user where id = :id', {'id': 1}).first() 不過這和直接使用 MySQL-Python 沒啥區別,所以就不介紹了;我還是喜歡 ORM 的方式,這也是我采用 SQLAlchemy 的唯一原因。

    于是來定義一個表:
    from sqlalchemy import Column from sqlalchemy.types import CHAR, Integer, String from sqlalchemy.ext.declarative import declarative_baseBaseModel = declarative_base() def init_db(): BaseModel.metadata.create_all(engine) def drop_db(): BaseModel.metadata.drop_all(engine) class User(BaseModel): __tablename__ = 'user' id = Column(Integer, primary_key=True)name = Column(CHAR(30)) # or Column(String(30)) init_db() declarative_base() 創建了一個 BaseModel 類,這個類的子類可以自動與一個表關聯。
    以 User 類為例,它的 __tablename__ 屬性就是數據庫中該表的名稱,它有 id 和 name 這兩個字段,分別為整型和 30 個定長字符。Column 還有一些其他的參數,我就不解釋了。
    最后,BaseModel.metadata.create_all(engine) 會找到 BaseModel 的所有子類,并在數據庫中建立這些表;drop_all() 則是刪除這些表。

    接著就開始使用這個表吧:
    from sqlalchemy import func, or_, not_user = User(name='a') session.add(user) user = User(name='b') session.add(user) user = User(name='a') session.add(user) user = User() session.add(user) session.commit()query = session.query(User) print query # 顯示SQL 語句 print query.statement # 同上 for user in query: # 遍歷時查詢 print user.name print query.all() # 返回的是一個類似列表的對象 print query.first().name # 記錄不存在時,first() 會返回 None # print query.one().name # 不存在,或有多行記錄時會拋出異常 print query.filter(User.id == 2).first().name print query.get(2).name # 以主鍵獲取,等效于上句 print query.filter('id = 2').first().name # 支持字符串 query2 = session.query(User.name) print query2.all() # 每行是個元組 print query2.limit(1).all() # 最多返回 1 條記錄 print query2.offset(1).all() # 從第 2 條記錄開始返回 print query2.order_by(User.name).all() print query2.order_by('name').all() print query2.order_by(User.name.desc()).all() print query2.order_by('name desc').all() print session.query(User.id).order_by(User.name.desc(), User.id).all() print query2.filter(User.id == 1).scalar() # 如果有記錄,返回第一條記錄的第一個元素 print session.query('id').select_from(User).filter('id = 1').scalar() print query2.filter(User.id > 1, User.name != 'a').scalar() # and query3 = query2.filter(User.id > 1) # 多次拼接的 filter 也是 and query3 = query3.filter(User.name != 'a') print query3.scalar() print query2.filter(or_(User.id == 1, User.id == 2)).all() # or print query2.filter(User.id.in_((1, 2))).all() # in query4 = session.query(User.id) print query4.filter(User.name == None).scalar() print query4.filter('name is null').scalar() print query4.filter(not_(User.name == None)).all() # not print query4.filter(User.name != None).all() print query4.count() print session.query(func.count('*')).select_from(User).scalar() print session.query(func.count('1')).select_from(User).scalar() print session.query(func.count(User.id)).scalar() print session.query(func.count('*')).filter(User.id > 0).scalar() # filter() 中包含 User,因此不需要指定表 print session.query(func.count('*')).filter(User.name == 'a').limit(1).scalar() == 1 # 可以用 limit() 限制 count() 的返回數 print session.query(func.sum(User.id)).scalar() print session.query(func.now()).scalar() # func 后可以跟任意函數名,只要該數據庫支持 print session.query(func.current_timestamp()).scalar() print session.query(func.md5(User.name)).filter(User.id == 1).scalar()query.filter(User.id == 1).update({User.name: 'c'}) user = query.get(1) print user.nameuser.name = 'd' session.flush() # 寫數據庫,但并不提交 print query.get(1).namesession.delete(user) session.flush() print query.get(1)session.rollback() print query.get(1).name query.filter(User.id == 1).delete() session.commit() print query.get(1) 增刪改查都涉及到了,自己看看輸出的 SQL 語句就知道了,于是基礎知識就介紹到此了。

    下面開始介紹一些進階的知識。

    如何批量插入大批數據?
    可以使用非 ORM 的方式:
    session.execute(User.__table__.insert(),[{'name': `randint(1, 100)`,'age': randint(1, 100)} for i in xrange(10000)] ) session.commit() 上面我批量插入了 10000 條記錄,半秒內就執行完了;而 ORM 方式會花掉很長時間。

    如何讓執行的 SQL 語句增加前綴?
    使用 query 對象的 prefix_with() 方法:
    session.query(User.name).prefix_with('HIGH_PRIORITY').all() session.execute(User.__table__.insert().prefix_with('IGNORE'), {'id': 1, 'name': '1'})
    如何替換一個已有主鍵的記錄?
    使用 session.merge() 方法替代 session.add(),其實就是 SELECT + UPDATE:
    user = User(id=1, name='ooxx') session.merge(user) session.commit() 或者使用 MySQL 的 INSERT … ON DUPLICATE KEY UPDATE,需要用到 @compiles 裝飾器,有點難懂,自己看吧: 《SQLAlchemy ON DUPLICATE KEY UPDATE》 ?和? sqlalchemy_mysql_ext

    如何使用無符號整數?
    可以使用 MySQL 的方言:
    from sqlalchemy.dialects.mysql import INTEGERid = Column(INTEGER(unsigned=True), primary_key=True)
    模型的屬性名需要和表的字段名不一樣怎么辦?
    開發時遇到過一個奇怪的需求,有個其他系統的表里包含了一個“from”字段,這在 Python 里是關鍵字,于是只能這樣處理了:
    from_ = Column('from', CHAR(10))
    如何獲取字段的長度?
    Column 會生成一個很復雜的對象,想獲取長度比較麻煩,這里以 User.name 為例:
    User.name.property.columns[0].type.length
    如何指定使用 InnoDB,以及使用 UTF-8 編碼?
    最簡單的方式就是修改數據庫的默認配置。如果非要在代碼里指定的話,可以這樣:
    class User(BaseModel): __table_args__ = { 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8' } MySQL 5.5 開始支持存儲 4 字節的 UTF-8 編碼的字符了,iOS 里自帶的 emoji(如 �� 字符)就屬于這種。
    如果是對表來設置的話,可以把上面代碼中的 utf8 改成 utf8mb4,DB_CONNECT_STRING 里的 charset 也這樣更改。
    如果對庫或字段來設置,則還是自己寫 SQL 語句比較方便,具體細節可參考 《How to support full Unicode in MySQL databases》
    不建議全用 utf8mb4 代替 utf8,因為前者更慢,索引會占用更多空間。

    如何設置外鍵約束?
    from random import randint from sqlalchemy import ForeignKey class User(BaseModel): __tablename__ = 'user' id = Column(Integer, primary_key=True)age = Column(Integer) class Friendship(BaseModel): __tablename__ = 'friendship' id = Column(Integer, primary_key=True)user_id1 = Column(Integer, ForeignKey('user.id'))user_id2 = Column(Integer, ForeignKey('user.id')) for i in xrange(100):session.add(User(age=randint(1, 100))) session.flush() # 或 session.commit(),執行完后,user 對象的 id 屬性才可以訪問(因為 id 是自增的) for i in xrange(100):session.add(Friendship(user_id1=randint(1, 100), user_id2=randint(1, 100))) session.commit()session.query(User).filter(User.age < 50).delete() 執行這段代碼時,你應該會遇到一個錯誤:
    sqlalchemy.exc.IntegrityError: (IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`ooxx`.`friendship`, CONSTRAINT `friendship_ibfk_1` FOREIGN KEY (`user_id1`) REFERENCES `user` (`id`))') 'DELETE FROM user WHERE user.age < %s' (50,) 原因是刪除 user 表的數據,可能會導致 friendship 的外鍵不指向一個真實存在的記錄。在默認情況下,MySQL 會拒絕這種操作,也就是 RESTRICT。InnoDB 還允許指定 ON DELETE 為 CASCADE 和 SET NULL,前者會刪除 friendship 中無效的記錄,后者會將這些記錄的外鍵設為 NULL。
    除了刪除,還有可能更改主鍵,這也會導致 friendship 的外鍵失效。于是相應的就有 ON UPDATE 了。其中 CASCADE 變成了更新相應的外鍵,而不是刪除。
    而在 SQLAlchemy 中是這樣處理的:
    class Friendship(BaseModel): __tablename__ = 'friendship' id = Column(Integer, primary_key=True)user_id1 = Column(Integer, ForeignKey('user.id', ondelete='CASCADE', onupdate='CASCADE'))user_id2 = Column(Integer, ForeignKey('user.id', ondelete='CASCADE', onupdate='CASCADE'))
    如何連接表?
    from sqlalchemy import distinct from sqlalchemy.orm import aliasedFriend = aliased(User, name='Friend') print session.query(User.id).join(Friendship, User.id == Friendship.user_id1).all() # 所有有朋友的用戶 print session.query(distinct(User.id)).join(Friendship, User.id == Friendship.user_id1).all() # 所有有朋友的用戶(去掉重復的) print session.query(User.id).join(Friendship, User.id == Friendship.user_id1).distinct().all() # 同上 print session.query(Friendship.user_id2).join(User, User.id == Friendship.user_id1).order_by(Friendship.user_id2).distinct().all() # 所有被別人當成朋友的用戶 print session.query(Friendship.user_id2).select_from(User).join(Friendship, User.id == Friendship.user_id1).order_by(Friendship.user_id2).distinct().all() # 同上,join 的方向相反,但因為不是 STRAIGHT_JOIN,所以 MySQL 可以自己選擇順序 print session.query(User.id, Friendship.user_id2).join(Friendship, User.id == Friendship.user_id1).all() # 用戶及其朋友 print session.query(User.id, Friendship.user_id2).join(Friendship, User.id == Friendship.user_id1).filter(User.id < 10).all() # id 小于 10 的用戶及其朋友 print session.query(User.id, Friend.id).join(Friendship, User.id == Friendship.user_id1).join(Friend, Friend.id == Friendship.user_id2).all() # 兩次 join,由于使用到相同的表,因此需要別名 print session.query(User.id, Friendship.user_id2).outerjoin(Friendship, User.id == Friendship.user_id1).all() # 用戶及其朋友(無朋友則為 None,使用左連接) 這里我沒提到 relationship,雖然它看上去很方便,但需要學習的內容實在太多,還要考慮很多性能上的問題,所以干脆自己 join 吧。

    為什么無法刪除 in 操作查詢出來的記錄?
    session.query(User).filter(User.id.in_((1, 2, 3))).delete() 拋出這樣的異常:
    sqlalchemy.exc.InvalidRequestError: Could not evaluate current criteria in Python.??Specify 'fetch' or False for the synchronize_session parameter. 但這樣是沒問題的:
    session.query(User).filter(or_(User.id == 1, User.id == 2, User.id == 3)).delete() 搜了下找到 《Sqlalchemy delete subquery》 這個問題,提到了? delete ?的一個注意點:刪除記錄時,默認會嘗試刪除 session 中符合條件的對象,而 in 操作估計還不支持,于是就出錯了。解決辦法就是刪除時不進行同步,然后再讓 session 里的所有實體都過期:
    session.query(User).filter(User.id.in_((1, 2, 3))).delete(synchronize_session=False) session.commit() # or session.expire_all() 此外,update 操作也有同樣的參數,如果后面立刻提交了,那么加上 synchronize_session=False 參數會更快。

    如何擴充模型的基類?
    declarative_base() 會生成一個 class 對象,這個對象的子類一般都和一張表對應。如果想增加這個基類的方法或屬性,讓子類都能使用,可以有三種方法:
  • 定義一個新類,將它的方法設置為基類的方法:
    class ModelMixin(object): @classmethod def get_by_id(cls, session, id, columns=None, lock_mode=None): if hasattr(cls, 'id'):scalar = False if columns: if isinstance(columns, (tuple, list)):query = session.query(*columns) else:scalar = True query = session.query(columns) else:query = session.query(cls) if lock_mode:query = query.with_lockmode(lock_mode)query = query.filter(cls.id == id) if scalar: return query.scalar() return query.first() return None BaseModel.get_by_id = get_by_id @classmethod def get_all(cls, session, columns=None, offset=None, limit=None, order_by=None, lock_mode=None): if columns: if isinstance(columns, (tuple, list)):query = session.query(*columns) else:query = session.query(columns) if isinstance(columns, str):query = query.select_from(cls) else:query = session.query(cls) if order_by is not None: if isinstance(order_by, (tuple, list)):query = query.order_by(*order_by) else:query = query.order_by(order_by) if offset:query = query.offset(offset) if limit:query = query.limit(limit) if lock_mode:query = query.with_lockmode(lock_mode) return query.all()BaseModel.get_all = get_all @classmethod def count_all(cls, session, lock_mode=None): query = session.query(func.count('*')).select_from(cls) if lock_mode:query = query.with_lockmode(lock_mode) return query.scalar()BaseModel.count_all = count_all @classmethod def exist(cls, session, id, lock_mode=None): if hasattr(cls, 'id'):query = session.query(func.count('*')).select_from(cls).filter(cls.id == id) if lock_mode:query = query.with_lockmode(lock_mode) return query.scalar() > 0 return False BaseModel.exist = exist @classmethod def set_attr(cls, session, id, attr, value): if hasattr(cls, 'id'):session.query(cls).filter(cls.id == id).update({attr: value})session.commit()BaseModel.set_attr = set_attr @classmethod def set_attrs(cls, session, id, attrs): if hasattr(cls, 'id'):session.query(cls).filter(cls.id == id).update(attrs)session.commit()BaseModel.set_attrs = set_attrs 雖然很拙劣,但確實能用。順便還附送了一些有用的玩意,你懂的。
  • 設置 declarative_base() 的 cls 參數:
    BaseModel = declarative_base(cls=ModelMixin) 這種方法不需要執行“BaseModel.get_by_id = get_by_id”之類的代碼。不足之處就是 PyCharm 仍然無法找到這些方法的位置。
  • 設置 __abstract__ 屬性:
    class BaseModel(BaseModel): __abstract__ = True __table_args__ = { # 可以省掉子類的 __table_args__ 了 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8' } # ... 這種方法最簡單,也可以繼承出多個類。

  • 如何正確使用事務?
    假設有一個簡單的銀行系統,一共兩名用戶:
    class User(BaseModel): __tablename__ = 'user' id = Column(Integer, primary_key=True)money = Column(DECIMAL(10, 2)) class TanseferLog(BaseModel): __tablename__ = 'tansefer_log' id = Column(Integer, primary_key=True)from_user = Column(Integer, ForeignKey('user.id', ondelete='CASCADE', onupdate='CASCADE'))to_user = Column(Integer, ForeignKey('user.id', ondelete='CASCADE', onupdate='CASCADE'))amount = Column(DECIMAL(10, 2))user = User(money=100) session.add(user) user = User(money=0) session.add(user) session.commit() 然后開兩個 session,同時進行兩次轉賬操作:
    session1 = DB_Session() session2 = DB_Session()user1 = session1.query(User).get(1) user2 = session1.query(User).get(2) if user1.money >= 100:user1.money -= 100 user2.money += 100 session1.add(TanseferLog(from_user=1, to_user=2, amount=100))user1 = session2.query(User).get(1) user2 = session2.query(User).get(2) if user1.money >= 100:user1.money -= 100 user2.money += 100 session2.add(TanseferLog(from_user=1, to_user=2, amount=100))session1.commit() session2.commit() 現在看看結果:
    >>> user1.money Decimal('0.00') >>> user2.money Decimal('100.00') >>> session.query(TanseferLog).count() 2L 兩次轉賬都成功了,但是只轉走了一筆錢,這明顯不科學。

    可見 MySQL InnoDB 雖然支持事務,但并不是那么簡單的,還需要手動加鎖。
    首先來試試讀鎖:
    user1 = session1.query(User).with_lockmode('read').get(1) user2 = session1.query(User).with_lockmode('read').get(2) if user1.money >= 100:user1.money -= 100 user2.money += 100 session1.add(TanseferLog(from_user=1, to_user=2, amount=100))user1 = session2.query(User).with_lockmode('read').get(1) user2 = session2.query(User).with_lockmode('read').get(2) if user1.money >= 100:user1.money -= 100 user2.money += 100 session2.add(TanseferLog(from_user=1, to_user=2, amount=100)) session1.commit() session2.commit() 現在在執行 session1.commit() 的時候,因為 user1 和 user2 都被 session2 加了讀鎖,所以會等待鎖被釋放。超時以后,session1.commit() 會拋出個超時的異常,如果捕捉了的話,或者 session2 在另一個進程,那么 session2.commit() 還是能正常提交的。這種情況下,有一個事務是肯定會提交失敗的,所以那些更改等于白做了。

    接下來看看寫鎖,把上段代碼中的 'read' 改成 'update' 即可。這次在執行 select 的時候就會被阻塞了:
    user1 = session2.query(User).with_lockmode('update').get(1) 這樣只要在超時期間內,session1 完成了提交或回滾,那么 session2 就能正常判斷 user1.money >= 100 是否成立了。
    由此可見,如果需要更改數據,最好加寫鎖。

    那么什么時候用讀鎖呢?如果要保證事務運行期間內,被讀取的數據不被修改,自己也不去修改,加讀鎖即可。
    舉例來說,假設我查詢一個用戶的開支記錄(同時包含余額和轉賬記錄),可以直接把 user 和 tansefer_log 做個內連接。
    但如果用戶的轉賬記錄特別多,我在查詢前想先驗證用戶的密碼(假設在 user 表中),確認相符后才查詢轉賬記錄。而這兩次查詢的期間內,用戶可能收到了一筆轉賬,導致他的 money 字段被修改了,但我在展示給用戶時,用戶的余額仍然沒變,這就不正常了。
    而如果我在讀取 user 時加了讀鎖,用戶是無法收到轉賬的(因為無法被另一個事務加寫鎖來修改 money 字段),這就保證了不會查出額外的 tansefer_log 記錄。等我查詢完兩張表,釋放了讀鎖后,轉賬就可以繼續進行了,不過我顯示的數據在當時的確是正確和一致的。

    另外要注意的是,如果被查詢的字段沒有加索引的話,就會變成鎖整張表了:
    session1.query(User).filter(User.id > 50).with_lockmode('update').all() session2.query(User).filter(User.id < 40).with_lockmode('update').all() # 不會被鎖,因為 id 是主鍵 session1.rollback() session2.rollback()session1.query(User).filter(User.money == 50).with_lockmode('update').all() session2.query(User).filter(User.money == 40).with_lockmode('update').all() # 會等待解鎖,因為 money 上沒有索引 要避免的話,可以這樣:
    money = Column(DECIMAL(10, 2), index=True)
    另一個注意點是子事務。
    InnoDB 支持子事務(savepoint 語句),可以簡化一些邏輯。
    例如有的方法是用于改寫數據庫的,它執行時可能提交了事務,但在后續的流程中卻執行失敗了,卻沒法回滾那個方法中已經提交的事務。這時就可以把那個方法當成子事務來運行了:
    def step1(): # ... if success:session.commit() return True session.rollback() return False def step2(): # ... if success:session.commit() return True session.rollback() return False session.begin_nested() if step1():session.begin_nested() if step2():session.commit() else:session.rollback() else:session.rollback() 此外,rollback 一個子事務,可以釋放這個子事務中獲得的鎖,提高并發性和降低死鎖概率。

    如何對一個字段進行自增操作?
    最簡單的辦法就是獲取時加上寫鎖:
    user = session.query(User).with_lockmode('update').get(1) user.age += 1 session.commit() 如果不想多一次讀的話,這樣寫也是可以的:
    session.query(User).filter(User.id == 1).update({User.age: User.age + 1 }) session.commit() # 其實字段之間也可以做運算: session.query(User).filter(User.id == 1).update({User.age: User.age + User.id })

    轉載于:https://my.oschina.net/u/130801/blog/287106

    總結

    以上是生活随笔為你收集整理的SQLAlchemy 使用经验的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    狠狠干成人 | 亚洲五月婷婷 | 久久免费在线观看视频 | 免费看国产曰批40分钟 | 99久久精品免费看国产一区二区三区 | 久久好看 | 手机看片国产日韩 | 在线观看黄污 | 91毛片在线观看 | 亚洲精品播放 | 又大又硬又黄又爽视频在线观看 | 日韩精品欧美一区 | 成人在线观看你懂的 | 国产精品久久久久aaaa九色 | 综合激情av | 黄色精品久久久 | 久久高清国产 | 九九免费观看视频 | 久久激情精品 | 国产亚洲精品成人av久久影院 | 欧美精品国产综合久久 | av在线播放国产 | 欧美肥妇free | 91成年人在线观看 | 69视频网站 | 亚洲精品视频网址 | 成人91在线| 色综合www | 免费毛片一区二区三区久久久 | 婷婷av网站 | 黄污视频网站 | 国产黄色精品 | 欧美性脚交 | 美女网站视频免费黄 | 成人小视频在线免费观看 | 精品一二三区 | 亚洲天天在线日亚洲洲精 | 午夜精品在线看 | 在线观看黄av | 香蕉视频在线免费看 | 草樱av| 亚洲综合色视频 | 99自拍视频在线观看 | 色五婷婷| 亚洲精品久久视频 | 久久久九九 | 国产明星视频三级a三级点| 亚洲黄色在线观看 | 午夜精品电影 | 日日夜av| 日韩国产高清在线 | 亚洲天堂网在线播放 | 精品在线小视频 | 国产91在线免费视频 | 欧美性视频网站 | 午夜精品久久久久99热app | 日日爽天天操 | 久久久久亚洲精品成人网小说 | a色视频 | 欧美一区二区三区免费观看 | 亚洲区精品 | 日韩色中色 | 国产成人久久77777精品 | 日日激情 | 91精品国产一区二区在线观看 | www.狠狠操 | 在线看毛片网站 | 国产精品系列在线观看 | 欧洲一区精品 | 免费观看的黄色片 | 久久综合之合合综合久久 | 亚洲五月综合 | av在线网站观看 | 日本久久片 | 999日韩| 97人人看 | 黄色的视频网站 | 国产不卡在线 | 久久综合国产伦精品免费 | 在线看片一区 | www日| 国产剧情在线一区 | 日韩欧美v | 91爱看片| 国产精品久久久久久久久久久杏吧 | 亚洲电影一级黄 | 在线精品亚洲一区二区 | 久久久久久久久毛片 | 国产三级午夜理伦三级 | 99精品区 | 午夜在线免费观看视频 | 亚洲涩综合 | 狠狠黄 | 91在线公开视频 | 免费看成年人 | 久久国产电影院 | 亚洲 成人 一区 | 日韩丝袜视频 | 视频精品一区二区三区 | 国产麻豆视频 | 国产精品99久久久久久宅男 | 国产精品人人做人人爽人人添 | 精品成人网 | 日韩黄色软件 | 成人一区二区三区中文字幕 | 亚洲无吗视频在线 | 在线观看av网 | 欧美成人精品在线 | 不卡av电影在线 | 99热国产在线中文 | 欧美在线视频一区二区三区 | 色av资源网 | 国产成人精品电影久久久 | 日韩小视频 | 久久精品一区二区三 | 亚洲国产久 | 懂色av一区二区三区蜜臀 | 久久久久久久久久久久久久免费看 | 免费看v片网站 | 99热九九这里只有精品10 | 九九涩涩av台湾日本热热 | 91精品少妇偷拍99 | 国产人成一区二区三区影院 | 国产精品国产三级国产aⅴ入口 | 亚洲精品久久久久中文字幕二区 | 欧美性生活久久 | 激情五月激情综合网 | 国产精品99免费看 | 久久久久久久久久久成人 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 在线观看深夜视频 | 婷婷新五月 | 美女网站在线免费观看 | 久久香蕉国产 | 欧美激情精品久久久 | 在线免费性生活片 | 激情综合网婷婷 | 人人爽人人爽人人片av免 | 永久免费毛片在线观看 | 97成人资源| 久久久五月婷婷 | 欧美肥妇free| 91精品高清| 亚洲理论电影 | 五月婷婷丁香在线观看 | 黄色在线观看www | 免费在线观看国产黄 | 一区二区毛片 | 久久精品国产一区二区电影 | 天天爱天天草 | 日韩免费一区二区 | 天天操狠狠操夜夜操 | 国产精品69av| 日韩高清免费电影 | 最新av观看 | 成人久久精品 | 99亚洲国产精品 | av在线网站免费观看 | 免费观看国产成人 | 97精品国自产拍在线观看 | 亚州av成人 | 亚洲资源在线 | japanesexxxxfreehd乱熟 | www看片网站 | 午夜av色 | 在线看成人 | 成年人国产视频 | 波多野结衣精品在线 | 九九热视频在线播放 | 91精品伦理 | 中文字幕色在线 | 久在线观看视频 | 91精选| 婷婷播播网 | 亚洲视频在线看 | 亚洲经典中文字幕 | 97av视频 | 色无五月 | 中文字幕在线观看1 | 久久精品一区二区三区四区 | 亚洲午夜精品福利 | wwxxxx日本 | 日本中文字幕在线电影 | 欧美99热 | 亚洲精区二区三区四区麻豆 | 三级黄色大片在线观看 | 丁香婷婷综合色啪 | 国内精品亚洲 | 国产视频精品久久 | 91精品国产成人观看 | 欧美日韩国产区 | www激情网 | 亚洲成av| 日韩欧美精品在线观看视频 | 欧美精品色 | 日韩av高潮 | 99免费视频 | 在线观看av麻豆 | 中文字幕乱码视频 | 国产做爰视频 | 国产精品久久婷婷六月丁香 | 国产在线精品国自产拍影院 | 国产美女视频一区 | 人人艹视频 | 国产精品综合久久久 | 中文字幕在线观看第一区 | 香蕉网址 | 91视频久久久久久 | 欧亚日韩精品一区二区在线 | 黄色大片日本免费大片 | 91成人精品国产刺激国语对白 | 精品久久久99 | 色99导航| 韩国av在线播放 | 在线视频电影 | 手机在线黄色网址 | 免费看国产曰批40分钟 | 国产视频中文字幕在线观看 | 一区二区三区日韩在线 | 国产精品一区二区久久久 | 麻豆一精品传二传媒短视频 | 四虎成人精品在永久免费 | 精品99在线观看 | 成人国产网址 | 91视频在线免费观看 | 欧美精品乱码久久久久久 | 91探花在线视频 | 亚洲 欧美 国产 va在线影院 | 久久久久亚洲精品中文字幕 | 久久人人做 | 久久精品视频在线看 | 日日麻批40分钟视频免费观看 | 91日韩免费 | 中文字幕在线观看你懂的 | 欧美日韩国产在线观看 | 日本久久视频 | 狠狠躁日日躁夜夜躁av | 91亚洲精品久久久蜜桃网站 | 97免费在线观看 | 午夜影院一级片 | 韩国视频一区二区三区 | 99免费在线视频 | 亚洲综合五月天 | 亚洲区色 | 99久久精品免费看国产麻豆 | 精品国产乱码久久久久久天美 | 91人人揉日日捏人人看 | 亚洲v欧美v国产v在线观看 | 欧美一级性视频 | 久久免费成人精品视频 | 9在线观看免费高清完整版在线观看明 | 66av99精品福利视频在线 | 日韩欧美一区二区三区免费观看 | 国产夫妻av在线 | 国产精品丝袜在线 | 狠狠色伊人亚洲综合网站色 | 国产精品一区二区三区在线免费观看 | av品善网 | 久久99久久99精品中文字幕 | 在线精品视频免费播放 | 欧美另类tv | 欧美性黑人| 国产一区精品在线 | 黄色一级影院 | 欧美a√大片 | 国产免费一区二区三区最新6 | 国产精品9999久久久久仙踪林 | 黄在线免费看 | 久草在线视频精品 | 国产最新91 | 麻豆免费视频 | 免费在线播放 | 成人啊 v | 久草精品网 | 久久久国产毛片 | 99视频免费在线观看 | 久久久人人人 | 国产久草在线 | www.亚洲黄色 | 国产精国产精品 | wwwwwww色 | 亚洲成人精品久久 | 五月天婷亚洲天综合网精品偷 | 黄色成人av | 91网在线观看 | 日本精品va在线观看 | 欧美日韩视频精品 | 久久久99国产精品免费 | 高清中文字幕av | av片无限看| 国内视频在线观看 | 久久免费国产精品1 | 九九有精品 | 亚洲黄在线观看 | 亚洲黄色片 | 婷婷丁香五 | 中文字幕在线视频精品 | 欧美日韩中 | 国产一级片在线播放 | 午夜影院一级 | 亚洲天堂自拍视频 | 伊人狠狠色 | 色五月成人 | 久久黄色免费观看 | 综合天堂av久久久久久久 | 色婷婷导航 | 麻豆影视在线免费观看 | 国产一级免费在线观看 | 日韩免费大片 | 国内精品久久久久 | 精品国产视频在线观看 | 精品国产视频在线 | 欧美日韩国产一区 | 欧美精品久久久久久久 | 成片视频免费观看 | 免费h精品视频在线播放 | 日韩色中色| 超碰国产97 | 91av手机在线 | 欧美日韩在线免费观看 | 日韩天天操| 五月天久久综合 | 日韩电影一区二区三区在线观看 | 免费看成人a | 99自拍视频在线观看 | 黄色亚洲 | 99久久这里有精品 | 欧美另类高清 | 精品一区在线 | 欧美一区日韩精品 | 国产精品免费在线播放 | 色噜噜日韩精品欧美一区二区 | av中文字幕在线播放 | 国产成人一区二区在线观看 | 国产手机免费视频 | 免费激情在线电影 | 亚洲黄色在线观看 | 日韩成人看片 | 九九热av | 免费网站色 | 天天插天天 | 黄色电影网站在线观看 | 国产精品久久久久久久久久久免费看 | 国产黄色片久久久 | 人人爽影院 | 亚洲专区在线视频 | 99re8这里有精品热视频免费 | 国产性天天综合网 | 欧美aaaxxxx做受视频 | 中文字幕91 | av黄色大片 | 91喷水 | 在线观看视频h | 四虎精品成人免费网站 | 中文字幕在线色 | 国内精品久久久久久久久 | 天天天干夜夜夜操 | 日本久久视频 | 国产精品日韩欧美一区二区 | 男女啪啪视屏 | 国产资源网 | 亚洲日本国产精品 | 国产精品免费看久久久8精臀av | 日韩久久精品一区二区 | 黄色毛片大全 | www.色婷婷.com| 色在线中文字幕 | 欧美精品久久久久久久久久久 | 欧美性生活大片 | 成人午夜剧场在线观看 | 亚洲全部视频 | 91亚洲精品久久久蜜桃借种 | 美女在线观看av | 色播五月激情五月 | 免费视频久久久久久久 | 国产精品二区在线 | 午夜在线资源 | 毛片1000部免费看 | 五月婷婷开心 | 亚洲成人黄色网址 | 婷婷色在线视频 | 久久视频免费在线观看 | 夜夜操网站 | 国内精品久久久久影院优 | 夜夜狠狠 | 日韩区视频 | 狠狠操狠狠操 | 亚洲欧美日韩国产一区二区三区 | 青青河边草手机免费 | 国产精品免费在线观看视频 | 中文字幕日韩伦理 | 国产精品一区在线观看 | 免费观看一级一片 | 日韩av在线看 | www.精选视频.com| 久久艹艹| www.五月天色 | 欧美性猛片,| 国产真实精品久久二三区 | 久久久高清视频 | 一区二区三区韩国免费中文网站 | 国产99久久精品一区二区300 | 久久久久亚洲国产精品 | 香蕉在线视频播放网站 | 蜜臀av性久久久久蜜臀av | 天天草天天 | 日本一区二区三区免费观看 | 最新日韩精品 | 中文字幕首页 | 国产黄色片在线免费观看 | 波多野结衣小视频 | 91精品视频一区二区三区 | 午夜精品一区二区三区可下载 | 91精品视频免费观看 | 在线免费日韩 | 黄色电影网站在线观看 | 4hu视频| 97电影手机版 | 久久成人毛片 | 免费在线观看av网址 | 在线观看国产成人av片 | 亚洲一级免费观看 | 天天射天天艹 | 天天草天天干天天射 | 99精品国产成人一区二区 | 欧美一区二区三区特黄 | av免费电影在线观看 | 亚洲成av人电影 | 国产一级片不卡 | 日韩欧美视频在线播放 | 99久热在线精品 | 亚洲资源视频 | 欧美一级在线看 | 最新超碰 | 88av视频 | 在线免费观看黄色av | 国产精品久久久久久久婷婷 | 黄色在线观看污 | 丁香婷婷综合激情五月色 | 午夜精选视频 | 国产一区视频免费在线观看 | 日日碰狠狠添天天爽超碰97久久 | 精品在线观看免费 | 中文字幕成人在线观看 | 骄小bbw搡bbbb揉bbbb | 插婷婷| 日韩精品观看 | 在线国产能看的 | 黄色国产区 | 国产精品九九九 | 一区三区在线欧 | 久久观看免费视频 | 国产精品国产三级国产aⅴ入口 | 国产成人亚洲在线观看 | 国产中文字幕在线视频 | 国产色视频网站 | 97色在线视频| 国产精品一区二区在线看 | 中文在线最新版天堂 | 2019国产精品| 欧美日韩国产精品久久 | 久久99热这里只有精品 | 精品播放 | 国产小视频免费在线观看 | 麻豆精品国产传媒 | 国产精品第一 | 日本久久久久久久久久久 | 久久精品99久久久久久2456 | 久久精品香蕉视频 | 欧美在线资源 | 97人人澡人人爽人人模亚洲 | 日韩精品一区在线播放 | 最近最新mv字幕免费观看 | 成年人黄色免费网站 | 亚洲人成免费 | 911久久香蕉国产线看观看 | 毛片1000部免费看 | 日韩在线播放视频 | 国产二区免费视频 | 久久久精品在线观看 | 精品视频久久久 | 亚洲免费视频观看 | 国产涩涩在线观看 | 午夜精品久久久久久久99无限制 | 欧美激情视频一二三区 | 亚洲影视九九影院在线观看 | 色婷婷综合成人av | 999毛片| 肉色欧美久久久久久久免费看 | 久久久久久国产精品久久 | 欧美伦理一区二区三区 | 国产一线二线三线在线观看 | 黄色一级大片在线观看 | 在线观看黄色av | 97福利社 | 九九免费在线观看 | 久热电影 | 天堂在线视频免费观看 | 久久久久国产精品免费网站 | www.色婷婷 | 日本精品一区二区三区在线观看 | 久久精品电影院 | 色欲综合视频天天天 | 精品国产美女 | 日本午夜在线观看 | 欧美国产一区在线 | 国产a国产 | 99久久精品久久久久久动态片 | 91黄色在线看 | 成人免费视频免费观看 | 精品亚洲成人 | 久久久久这里只有精品 | 日韩网站在线观看 | av免费福利 | 8x成人免费视频 | 开心婷婷色 | 亚洲日本一区二区在线 | 美女视频黄是免费的 | 成人国产精品一区二区 | 色视频在线观看 | 一区二区三区在线影院 | 综合铜03| 久久久国产精品久久久 | 色中射 | 亚洲激情电影在线 | 玖玖爱在线观看 | 激情av资源网| 久久久精品一区二区 | 丁香花在线观看免费完整版视频 | 在线 国产 亚洲 欧美 | 国产精品久久艹 | 午夜精品视频一区二区三区在线看 | 久久综合桃花 | 91精品区 | 三级黄色大片在线观看 | 中文字幕中文中文字幕 | 99精品国产一区二区 | 色成人亚洲网 | 国产字幕在线看 | 午夜在线看 | 激情五月播播久久久精品 | 69xxxx欧美 | 国产午夜不卡 | 日韩欧三级 | 亚洲成人资源在线观看 | 久久久黄色免费网站 | 亚洲精品美女久久久久 | 91污视频在线 | 日韩美女av在线 | 亚洲国产福利视频 | 美女视频网站久久 | 久操视频在线 | 天天操天天综合网 | 久久久久福利视频 | 日韩国产精品一区 | 日韩中文字幕免费在线观看 | 99r在线播放 | 成人在线视频在线观看 | 亚洲第二色 | 9999精品视频 | 四虎成人精品永久免费av | 久久毛片网站 | 97人人人人 | 精品久久亚洲 | 国产精品久久久久久电影 | 亚洲视频免费在线观看 | 国内99视频| 精品免费一区 | 少妇自拍av| 特级黄色一级 | 香蕉久久久久久久 | 在线日韩av | 伊人五月天综合 | 欧美另类一二三四区 | 欧产日产国产69 | 成人h动漫精品一区二 | 日韩有码欧美 | 国产精品99页 | 一区二区不卡视频在线观看 | 一级性生活片 | 日韩高清无线码2023 | 在线免费黄色 | 91av视频网| 五月婷婷一区 | 婷婷成人亚洲综合国产xv88 | 激情久久五月 | 久久a久久 | 久久久久免费精品 | 天天草天天爽 | www.亚洲精品在线 | 天天操天天操天天 | 不卡的一区二区三区 | 日日夜夜操操操操 | 久久综合狠狠综合 | 国产网站色| 超级碰碰碰免费视频 | 天天操天天添天天吹 | 国产视频在线免费观看 | 欧美日韩三级 | 特级西西444www大精品视频免费看 | av激情五月| 在线观看免费日韩 | 久在线观看 | 欧美日韩国产亚洲乱码字幕 | 亚洲高清av | 在线免费性生活片 | 日韩成人免费在线电影 | 久久久久福利视频 | 精品久久久99 | 午夜久操 | 在线成人一区二区 | 日韩精品一区二区不卡 | 亚洲一级黄色大片 | 国产一区二区不卡在线 | 97电影院在线观看 | 久久99精品久久久久久秒播蜜臀 | 欧美91精品久久久久国产性生爱 | 久久久久免费精品 | 国内外激情视频 | 超碰在线人人艹 | 日本久久久久久久久 | 成年人黄色在线观看 | 韩国av免费| 人人澡人人爱 | 最近最新中文字幕视频 | 五月天亚洲婷婷 | 色狠狠狠| 亚洲2019精品 | 狠狠色丁香婷婷综合视频 | 日本公妇在线观看 | 美女视频黄免费 | 久草在线视频资源 | 中文字幕三区 | 久久优| 一区二区视频免费在线观看 | 国产一区二区久久久久 | 国产精品亚洲精品 | 日韩a级黄色片 | 免费高清在线一区 | 国产高清视频在线播放 | 黄色一区二区在线观看 | 色综合亚洲精品激情狠狠 | 日韩免费在线观看网站 | 精产嫩模国品一二三区 | 免费成人在线电影 | 99久久精品久久久久久动态片 | 国产精品va在线观看入 | 毛片网站免费 | 黄色av电影网 | 国产九九精品视频 | 国产特级毛片aaaaaa毛片 | 国产裸体永久免费视频网站 | 午夜少妇一区二区三区 | 精品国产精品国产偷麻豆 | 99精品视频在线观看免费 | 国产午夜一区二区 | 久久精品视频在线观看免费 | 午夜影视剧场 | 欧美一级片免费 | 亚洲综合婷婷 | 99免费观看视频 | 国产在线观看av | 亚洲 欧美 国产 va在线影院 | 97av在线视频| 欧美日韩高清在线 | av大全在线免费观看 | 草免费视频 | 青青射 | 国产精品久久久久一区二区三区共 | 免费在线色视频 | 久久伦理电影 | 国产成人香蕉 | 日韩免费视频网站 | 日韩h在线观看 | 色婷婷狠狠五月综合天色拍 | 最近中文字幕在线 | 91精品国产高清自在线观看 | 精品美女国产在线 | av电影在线不卡 | 国产999精品久久久久久 | 激情网站免费观看 | 亚洲国产日本 | 精品国自产在线观看 | 91在线观看欧美日韩 | 国产色婷婷精品综合在线手机播放 | 精品久久久久亚洲 | 免费一级日韩欧美性大片 | 欧美一区二区在线免费看 | 色婷婷97 | 日韩欧美在线一区 | 成人免费av电影 | 日韩成人免费电影 | 亚洲在线精品视频 | 成人免费观看视频大全 | 久久99热这里只有精品 | 久操久 | 狠狠干天天干 | 国产精品美女久久久久aⅴ 干干夜夜 | 亚洲成人精品国产 | 天堂va欧美va亚洲va老司机 | 久久久久国产a免费观看rela | 国产精品免费一区二区三区在线观看 | 久久国产欧美日韩 | 黄色在线免费观看网址 | 免费看片亚洲 | 亚洲一区视频免费观看 | 国产高清在线a视频大全 | 欧美性黑人 | 日韩精品免费一线在线观看 | 91在线www | 国产91对白在线播 | 天天激情综合网 | 日韩精品高清不卡 | 最近日本韩国中文字幕 | 91精品视频免费看 | 国产精品久久久久久影院 | 久久伊人热 | 国产成人一区二区三区 | 免费观看v片在线观看 | 国产精品免费观看视频 | 欧美日韩国产一区二区在线观看 | 久草在线播放视频 | 少妇性aaaaaaaaa视频 | 蜜臀av性久久久久av蜜臀妖精 | 色资源在线 | 天天天在线综合网 | 777xxx欧美 | 在线亚洲人成电影网站色www | 91视频免费看 | 中文字幕亚洲不卡 | 久久tv| 成人av免费电影 | 91精品国产自产在线观看 | 在线观看一区二区视频 | 久久久久亚洲精品成人网小说 | 国产999精品久久久久久绿帽 | 久久99深爱久久99精品 | 久久99在线| 国产+日韩欧美 | 毛片一级免费一级 | 中文字幕在线观看免费高清完整版 | 日韩超碰在线 | 天天干天天干天天干 | 青青河边草观看完整版高清 | 波多野结衣在线视频免费观看 | 在线视频一区观看 | 国产精品欧美久久 | 色在线最新 | 久久精品高清视频 | 黄a网站 | 大型av综合网站 | 国产精品一区久久久久 | 免费av的网站 | 人人干在线 | 97在线资源 | 天天射射天天 | 97自拍超碰| 国产成人三级一区二区在线观看一 | а天堂中文最新一区二区三区 | 国产精品高潮呻吟久久av无 | 黄色av成人在线观看 | 麻豆国产视频下载 | 亚洲婷婷综合色高清在线 | 日韩一区二区三区在线看 | 成人在线视频一区 | 日韩不卡高清 | 天天干 天天摸 天天操 | 天天干天天插伊人网 | 中文字幕中文字幕在线一区 | 国产午夜在线观看 | 日韩欧美在线观看一区二区三区 | 日韩高清毛片 | 在线免费黄 | 人人擦| 国产亚洲精品久久 | 91精品在线免费观看 | 亚洲激情在线视频 | 国产色a在线观看 | 99av在线视频 | 国产亚洲久一区二区 | 黄色av网站在线免费观看 | 99在线精品视频在线观看 | 亚洲欧美乱综合图片区小说区 | 天天躁日日躁狠狠躁av麻豆 | 久久99国产精品久久99 | 午夜精品福利一区二区三区蜜桃 | 97国产在线播放 | 国产高清在线观看 | 免费观看黄色12片一级视频 | 91在线精品观看 | 五月天色综合 | 国产大陆亚洲精品国产 | 国产美女搞久久 | 久久精美视频 | 九九爱免费视频 | 在线观看网站av | 激情网综合| 国产精品入口a级 | 五月婷婷丁香六月 | 中文字幕在线看视频国产 | 伊人色综合久久天天 | 国产一区自拍视频 | 久久国产精品精品国产色婷婷 | 丁香视频全集免费观看 | 久久一二区 | 国产手机视频在线观看 | 国产日韩精品久久 | 欧美色图东方 | 欧美日韩另类在线 | av一级在线 | 国产字幕av | 中文字幕在线一区观看 | 午夜精品久久久久99热app | 亚洲激情视频在线观看 | 中文在线中文a | 成人午夜电影久久影院 | 探花国产在线 | 久久美女精品 | 久操伊人 | 国产一级一片免费播放放 | 免费麻豆网站 | 最新日韩精品 | 黄色电影小说 | 蜜臀一区二区三区精品免费视频 | 久久久男人的天堂 | 欧美贵妇性狂欢 | 日韩在线电影一区二区 | 在线高清av | 丁香婷婷网 | 欧美日韩亚洲一 | 国产精品国产三级国产aⅴ无密码 | 性色va | 亚洲国产影院 | 日日夜夜草 | 最近免费观看的电影完整版 | 日批视频在线观看免费 | 美女视频黄的免费的 | 欧美伦理电影一区二区 | 久久国产福利 | 婷婷综合久久 | 97超碰资源 | 免费黄a大片 | a在线播放 | 日本久久免费电影 | 久久人人97超碰com | 狠狠干夜夜爱 | 亚洲永久精品在线观看 | 高潮久久久| 免费成人av在线看 | 久草在线欧美 | 中文字幕第一页在线 | 国产视频2区 | 中文在线a天堂 | 最新国产精品拍自在线播放 | 国产精品女同一区二区三区久久夜 | 欧美另类sm图片 | 欧美粗又大 | www.天天操.com | 天天操福利视频 | 99av国产精品欲麻豆 | 免费黄色a级毛片 | 亚洲在线a | 午夜精品久久久久久久99 | 久久久久亚洲国产精品 | 天天射,天天干 | 亚洲影视九九影院在线观看 | 久久久久高清毛片一级 | 超碰人人在线 | 久久福利小视频 | 国产精品普通话 | 在线观看日本高清mv视频 | 福利视频一二区 | 99视频一区 | 国产99一区视频免费 | 午夜色大片在线观看 | 亚洲精品美女久久17c | 天天视频色 | 国产原创在线观看 | 在线免费高清视频 | 米奇四色影视 | 久草网在线 | 不卡的一区二区三区 | 97碰碰精品嫩模在线播放 | 国产中文在线观看 | 国产精品扒开做爽爽的视频 | 免费黄色小网站 | 亚洲精品乱码久久久久久蜜桃不爽 | 亚洲成免费 | 日韩精品视频免费看 | 免费观看xxxx9999片 | 久久五月婷婷丁香 | 精品国产乱码久久久久 | 美女黄久久 | 日本成人a | 日韩中文字幕电影 | 999在线精品 | 免费观看mv大片高清 | 又黄又刺激视频 | 久久久免费观看完整版 | 日韩免费专区 | 久久久久久久久久久影视 | 国产精品麻豆一区二区三区 | 精品亚洲网| 在线看片成人 | 亚洲一区日韩精品 | 国产日韩中文字幕 | 久久一二三四 | 国产黄色免费观看 | 人人擦 | 有码中文在线 | 国际精品久久久 | 亚洲九九九在线观看 | 午夜精品久久久久久久99水蜜桃 | 免费看色网站 | 蜜臀91丨九色丨蝌蚪老版 | 91亚洲在线观看 | 国内精品久久久久久久久久久久 | 中文字幕在线久一本久 | 亚洲精品777 | 69久久久久久久 | zzijzzij日本成熟少妇 | 日韩理论片在线 | 国产精品1区2区3区 久久免费视频7 | 亚洲综合狠狠干 | 波多野结衣在线观看视频 | 精品国产免费观看 | 久久久 激情 | av在线进入 | 91av视频在线播放 | 久99久视频 | 视频一区亚洲 | 日韩中文字幕第一页 | www操操操| 国产日韩中文字幕 | 激情五月婷婷网 | 五月婷婷电影网 | 丁香婷婷综合色啪 | 精品国产乱子伦一区二区 | 日本在线观看视频一区 | 久久免费国产精品1 | 夜色资源网 | 视频一区二区在线观看 | 国产精品一区二区果冻传媒 | 人人插人人澡 | 日韩精品一区二区三区三炮视频 | av网站在线免费观看 | 亚洲日本一区二区在线 | 久久蜜桃av | 日韩午夜高清 | 欧美日韩久久一区 | 99精品热| 久久精品屋 | 国产精品中文字幕在线观看 | 日韩高清免费无专码区 | 日韩欧美xxxx | 天天操天操 | 欧美a级在线免费观看 | 久久精品99国产精品日本 | 成人动漫精品一区二区 | 99久久日韩精品免费热麻豆美女 | 91超在线 | 少妇视频在线播放 | 黄色录像av | 美女一级毛片视频 | 91丨九色丨蝌蚪丰满 | 天天碰天天操 | 欧美一区免费在线观看 | 欧美亚洲国产精品久久高清浪潮 | 江苏妇搡bbbb搡bbbb | a在线v| 亚洲做受高潮欧美裸体 | 免费观看www小视频的软件 | 2019中文字幕网站 | 亚洲mv大片欧洲mv大片免费 | 国产精品久久久久久久妇 | 亚洲无吗av | 五月综合激情婷婷 | 国产精品综合av一区二区国产馆 | 蜜桃av观看| 成人av网站在线 | 欧美日韩另类在线 | 波多野结衣视频一区 | 少妇精品久久久一区二区免费 | 中文字幕一区二区三区乱码在线 | 西西444www大胆高清图片 | 国产精品久久久精品 | 久久久人人爽 | 成人手机在线视频 | 成人中心免费视频 | 成人免费观看a | 日韩一区二区三区不卡 | 99热网站| 一区二区三区精品在线 | 久久精品中文字幕一区二区三区 | 亚洲最大免费成人网 | 亚洲天堂网视频 | 超碰国产在线播放 | 天天艹天天操 |