亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python學(xué)習(xí)日記(二十八) hashlib模塊、configparse模塊

系統(tǒng) 1874 0

hashlib模塊

主要提供字符加密算法功能,如md5、sha1、sha224、sha512、sha384等,這里的加密算法稱為摘要算法。什么是摘要算法?它又稱為哈希算法、散列算法,它通過一個(gè)函數(shù)把任意長度的數(shù)據(jù)轉(zhuǎn)換為一個(gè)長度固定的數(shù)據(jù)串(通常以16進(jìn)制符表示)

摘要算法的作用主要在于密碼的密文存儲,以及文件的一致性驗(yàn)證(比如在下載的時(shí)候,檢查我們下載的文件和遠(yuǎn)程服務(wù)器上的文件是否一致;兩臺機(jī)器上的兩個(gè)文件,檢查上面的文件是否相等)

使用md5算法:

            
              import
            
            
               hashlib
md5 
            
            =
            
               hashlib.md5()
md5.update(b
            
            
              '
            
            
              python123
            
            
              '
            
            )            
            
              #
            
            
              這里傳入的數(shù)據(jù)類型必須是bytes類型
            
            
              print
            
            (md5.hexdigest())              
            
              #
            
            
              affaf271b3ebb2db157a04874259cdcb
            
          

使用sha1算法:

            
              import
            
            
               hashlib
sha1 
            
            =
            
               hashlib.sha1()
sha1.update(b
            
            
              '
            
            
              python123
            
            
              '
            
            )            
            
              #
            
            
              這里傳入的數(shù)據(jù)類型必須是bytes類型
            
            
              print
            
            (sha1.hexdigest())              
            
              #
            
            
              1854a7d8c2651e57acc7771b6644dfbf46b8ec98
            
          

使用sha512算法:

            
              import
            
            
               hashlib
sha512 
            
            =
            
               hashlib.sha512()
sha512.update(b
            
            
              '
            
            
              python123
            
            
              '
            
            )            
            
              #
            
            
              這里傳入的數(shù)據(jù)類型必須是bytes類型
            
            
              print
            
            (sha512.hexdigest())              
            
              #
            
            
              e0420e412c80aaa3ce59408884317104dbc708f49bec8542574d11459ffda18ecb12489
            
            
              #
            
            
              acf7893fd58ab2b57b8164c9d981096e5dfdbe6518423000301047fe6
            
          

從上面我們可以發(fā)現(xiàn)不管算法有多么不同,摘要的功能始終是不變的;對于相同的字符串使用同一個(gè)算法進(jìn)行摘要,得到的值總是不變的;

使用不同的算法對相同的字符串進(jìn)行摘要,得到的值應(yīng)該不同;當(dāng)使用sha算法時(shí),隨著算法的復(fù)雜難度的增加,摘要的時(shí)間成本和空間成本都會增加。

模擬用戶登錄:

我們創(chuàng)建一個(gè)'DB'的txt文檔,并在里面寫入用戶信息

            asd|affaf271b3ebb2db157a04874259cdcb
          
            
              import
            
            
               hashlib
usn 
            
            = input(
            
              '
            
            
              Input username:
            
            
              '
            
            
              )
pw 
            
            = input(
            
              '
            
            
              Input password:
            
            
              '
            
            
              )
with open (
            
            
              '
            
            
              DB
            
            
              '
            
            
              ) as f:
    
            
            
              for
            
             lines 
            
              in
            
            
               f:
        username,password 
            
            = lines.split(
            
              '
            
            
              |
            
            
              '
            
            
              )
        md5 
            
            =
            
               hashlib.md5()
        md5.update(bytes(pw,encoding
            
            =
            
              '
            
            
              utf-8
            
            
              '
            
            
              ))
        md5_pwd 
            
            =
            
               md5.hexdigest()
        
            
            
              if
            
             usn == username 
            
              and
            
             md5_pwd ==
            
               password:
            
            
            
              print
            
            (
            
              '
            
            
              登入成功!
            
            
              '
            
            
              )
        
            
            
              else
            
            
              :
            
            
            
              print
            
            (
            
              '
            
            
              登入失敗!
            
            
              '
            
            
              )

            
            
              #
            
            
               Input username:asd
            
            
              
#
            
            
               Input password:python123
            
            
              
#
            
            
               登入成功!
            
          

因此網(wǎng)站上的用戶名及用戶密碼都是將它們轉(zhuǎn)化成一個(gè)密令存放到數(shù)據(jù)庫中,而對于開發(fā)工作者他們并不能直接看到用戶的信息,只能看到由算法產(chǎn)生的密令。既然有了加密的算法來保護(hù)數(shù)據(jù),那么也就會有人想要通過其他手段去獲得用戶的信息,他們主要根據(jù)一個(gè)數(shù)據(jù)庫的密令全集去比對密令是否相等,如果相等那么就可以拿到這個(gè)用戶的密碼了。

'加鹽'

            
              import
            
            
               hashlib

            
            
              #
            
            
              沒加鹽
            
            
md5 =
            
               hashlib.md5()
md5.update(b
            
            
              '
            
            
              123
            
            
              '
            
            
              )

            
            
              print
            
            (md5.hexdigest())      
            
              #
            
            
              202cb962ac59075b964b07152d234b70
            
            
              #
            
            
              加了鹽
            
            
md5 = hashlib.md5(bytes(
            
              '
            
            
              salt
            
            
              '
            
            ,encoding=
            
              '
            
            
              utf-8
            
            
              '
            
            
              ))
md5.update(b
            
            
              '
            
            
              123
            
            
              '
            
            
              )

            
            
              print
            
            (md5.hexdigest())      
            
              #
            
            
              8c4fb7bf681156b52fea93442c7dffc9
            
          

加了鹽后能夠讓用戶的信息不能夠直接通過一個(gè)數(shù)據(jù)全集將用戶密碼的密令去比對出來,讓用戶信息更有安全性

其他

            
              import
            
            
               hashlib

            
            
              #
            
            
              不拆分
            
            
md5 =
            
               hashlib.md5()
md5.update(b
            
            
              '
            
            
              123
            
            
              '
            
            
              )

            
            
              print
            
            (md5.hexdigest())      
            
              #
            
            
              202cb962ac59075b964b07152d234b70
            
            
              #
            
            
              拆分
            
            
md5 =
            
               hashlib.md5()
md5.update(b
            
            
              '
            
            
              1
            
            
              '
            
            
              )
md5.update(b
            
            
              '
            
            
              2
            
            
              '
            
            
              )
md5.update(b
            
            
              '
            
            
              3
            
            
              '
            
            
              )

            
            
              print
            
            (md5.hexdigest())      
            
              #
            
            
              202cb962ac59075b964b07152d234b70
            
          

把數(shù)據(jù)拆開去加密和拆開去加密其實(shí)最后的結(jié)果都是一樣的

?

configparser模塊

該模塊適用于配置文件的格式與windows ini文件類似,可以包含一個(gè)或多個(gè)節(jié)(section),每個(gè)節(jié)可以有多個(gè)參數(shù)(鍵=值)

利用configparser生成的文件格式

            
              [DEFAULT]
location 
            
            =
            
               upper left
visible 
            
            =
            
               yes
editable 
            
            =
            
               no
color 
            
            =
            
               blue

[main]
title 
            
            =
            
               Main Menu
color 
            
            =
            
               green

[options]
title 
            
            = Options
          

如何利用python生成這樣一個(gè)文檔?

            
              #
            
            
               [DEFAULT]
            
            
              
#
            
            
               location = upper left
            
            
              
#
            
            
               visible = yes
            
            
              
#
            
            
               editable = no
            
            
              
#
            
            
               color = blue
            
            
              
#
#
            
            
               [main]
            
            
              
#
            
            
               title = Main Menu
            
            
              
#
            
            
               color = green
            
            
              
#
#
            
            
               [options]
            
            
              
#
            
            
               title = Options
            
            
              import
            
            
               configparser
config 
            
            =
            
               configparser.ConfigParser()
config[
            
            
              '
            
            
              DEFAULT
            
            
              '
            
            ] = {
            
              '
            
            
              location
            
            
              '
            
             : 
            
              '
            
            
              upper left
            
            
              '
            
            
              ,
                     
            
            
              '
            
            
              visible
            
            
              '
            
             : 
            
              '
            
            
              yes
            
            
              '
            
            
              ,
                     
            
            
              '
            
            
              color
            
            
              '
            
             : 
            
              '
            
            
              blue
            
            
              '
            
            
              }

config[
            
            
              '
            
            
              main
            
            
              '
            
            ] =
            
               {}
config[
            
            
              '
            
            
              main
            
            
              '
            
            ][
            
              '
            
            
              title
            
            
              '
            
            ] = 
            
              '
            
            
              Main Meue
            
            
              '
            
            
              
config[
            
            
              '
            
            
              main
            
            
              '
            
            ][
            
              '
            
            
              color
            
            
              '
            
            ] = 
            
              '
            
            
              green
            
            
              '
            
            
              

config[
            
            
              '
            
            
              options
            
            
              '
            
            ] =
            
               {}
config_op 
            
            = config[
            
              '
            
            
              options
            
            
              '
            
            
              ]
config_op[
            
            
              '
            
            
              title
            
            
              '
            
            ] = 
            
              '
            
            
              Options
            
            
              '
            
            
              

config[
            
            
              '
            
            
              DEFAULT
            
            
              '
            
            ][
            
              '
            
            
              editable
            
            
              '
            
            ] = 
            
              '
            
            
              no
            
            
              '
            
            
              
with open (
            
            
              '
            
            
              config.ini
            
            
              '
            
            ,
            
              '
            
            
              w
            
            
              '
            
            
              ) as configfile:
    config.write(configfile)
            
          

            
              import
            
            
               configparser
config 
            
            =
            
               configparser.ConfigParser()


            
            
              print
            
            (config.sections())             
            
              #
            
            
              []
            
            
config.read(
            
              '
            
            
              config.ini
            
            
              '
            
            
              )

            
            
              print
            
            (config.sections())             
            
              #
            
            
              ['main', 'options']
            
            
              print
            
            (
            
              '
            
            
              main
            
            
              '
            
            
              in
            
             config)              
            
              #
            
            
              True
            
            
              print
            
            (
            
              '
            
            
              options
            
            
              '
            
            
              in
            
             config)           
            
              #
            
            
              True
            
            
              print
            
            (
            
              '
            
            
              Options
            
            
              '
            
            
              in
            
             config)           
            
              #
            
            
              False
            
            
              print
            
            (config[
            
              '
            
            
              main
            
            
              '
            
            ])                
            
              #
            
            
              
            
            
              print
            
            (config[
            
              '
            
            
              options
            
            
              '
            
            ])             
            
              #
            
            
              
            
            
              print
            
            (config[
            
              '
            
            
              main
            
            
              '
            
            ][
            
              '
            
            
              color
            
            
              '
            
            ])       
            
              #
            
            
              green
            
            
              print
            
            (config[
            
              '
            
            
              options
            
            
              '
            
            ][
            
              '
            
            
              title
            
            
              '
            
            ])    
            
              #
            
            
              Options
            
            
              for
            
             key 
            
              in
            
             config[
            
              '
            
            
              main
            
            
              '
            
            ]:            
            
              #
            
            
              title
            
            
              print
            
            (key)                        
            
              #
            
            
              color
            
            
              #
            
            
              location
            
            
              #
            
            
              visible
            
            
              #
            
            
              editable 注意,有default會默認(rèn)default的鍵
            
            
              print
            
            (config.options(
            
              '
            
            
              main
            
            
              '
            
            ))         
            
              #
            
            
              ['title', 'color', 'location', 'visible', 'editable']
            
            
              print
            
            (config.items(
            
              '
            
            
              main
            
            
              '
            
            ))           
            
              #
            
            
              [('location', 'upper left'), ('visible', 'yes'), ('color', 'green'), 
              
                       #('editable', 'no'), ('title', 'Main Meue')]
print (config.get( ' main ' , ' visible ' )) # yes 獲得該鍵下對應(yīng)的值

增刪改

            
              import
            
            
               configparser
config 
            
            =
            
               configparser.ConfigParser()
config.read(
            
            
              '
            
            
              config.ini
            
            
              '
            
            
              )

config.add_section(
            
            
              '
            
            
              map
            
            
              '
            
            )           
            
              #
            
            
              增加一個(gè)新的節(jié)
            
            
              
config.remove_section(
            
            
              '
            
            
              options
            
            
              '
            
            )    
            
              #
            
            
              刪除一個(gè)節(jié)
            
            
config.remove_option(
            
              '
            
            
              main
            
            
              '
            
            ,
            
              '
            
            
              color
            
            
              '
            
            
              )

config.set(
            
            
              '
            
            
              map
            
            
              '
            
            ,
            
              '
            
            
              k1
            
            
              '
            
            ,
            
              '
            
            
              v1
            
            
              '
            
            
              )
config.set(
            
            
              '
            
            
              main
            
            
              '
            
            ,
            
              '
            
            
              k2
            
            
              '
            
            ,
            
              '
            
            
              v2
            
            
              '
            
            
              )

config.write(open(
            
            
              '
            
            
              config.ini
            
            
              '
            
            ,
            
              '
            
            
              w
            
            
              '
            
            
              ))


            
            
              #
            
            
               [DEFAULT]
            
            
              
#
            
            
               location = upper left
            
            
              
#
            
            
               visible = yes
            
            
              
#
            
            
               color = blue
            
            
              
#
            
            
               editable = no
            
            
              
#
            
            
              
#
            
            
               [main]
            
            
              
#
            
            
               title = Main Meue
            
            
              
#
            
            
               k2 = v2
            
            
              
#
            
            
              
#
            
            
               [map]
            
            
              
#
            
            
               k1 = v1
            
          

?

logging模塊

即日志模塊,即主要用來記錄用戶的行為或者代碼的執(zhí)行過程

這里定義了幾種日志等級:

DEBUG :最詳細(xì)的日志信息,典型應(yīng)用場景是應(yīng)用診斷

INFO: 信息詳盡程度僅次于DEBUG,通常只記錄關(guān)鍵節(jié)點(diǎn)信息,用于確認(rèn)一切是按照我們預(yù)期的那樣進(jìn)行工作

WARNING: 當(dāng)某些不期望的事情發(fā)生時(shí)記錄的信息(如磁盤可用空間較低),但是此時(shí)應(yīng)用程序還是正常運(yùn)行的

ERROR: 由于一個(gè)更嚴(yán)重的問題導(dǎo)致某些功能不能正常運(yùn)行時(shí)記錄的信息

CRITICAL: 當(dāng)發(fā)生嚴(yán)重錯誤,導(dǎo)致應(yīng)用程序不能繼續(xù)運(yùn)行時(shí)記錄的信息

日志的等級:DEBUG < INFO < WARNING < ERROR < CRITICAL

配置一個(gè)簡單的日志 :

            
              import
            
            
               logging
logging.debug(
            
            
              '
            
            
              DEBUG!
            
            
              '
            
            
              )
logging.info(
            
            
              '
            
            
              INFO!
            
            
              '
            
            
              )
logging.warning(
            
            
              '
            
            
              WARNING!
            
            
              '
            
            
              )     
logging.error(
            
            
              '
            
            
              ERROR!
            
            
              '
            
            
              )
logging.critical(
            
            
              '
            
            
              CRITICAL
            
            
              '
            
            
              )

            
            
              #
            
            
               WARNING:root:WARNING!
            
            
              
#
            
            
               ERROR:root:ERROR!
            
            
              
#
            
            
               CRITICAL:root:CRITICAL
            
          

根據(jù)輸出的結(jié)果我們可以看到這里只打印出了高于INFO級別的日志,可以說這里的默認(rèn)級別設(shè)置為WARNING

默認(rèn)的輸出格式為 默認(rèn)的日志格式為日志級別:Logger名稱:用戶輸出消息

通過 basicConfig()調(diào)整日志級別和輸出格式

            
              import
            
            
               logging
logging.basicConfig(level
            
            =
            
              logging.DEBUG,
                    format
            
            =
            
              '
            
            
              %(asctime)s %(name)s %(levelname)s %(message)s
            
            
              '
            
            
              ,
                    datefmt
            
            =
            
              '
            
            
              %Y-%m-%d %H:%M:%S %a
            
            
              '
            
            
              
                    )
logging.debug(
            
            
              '
            
            
              DEBUG!
            
            
              '
            
            
              )
logging.info(
            
            
              '
            
            
              INFO!
            
            
              '
            
            
              )
logging.warning(
            
            
              '
            
            
              WARNING!
            
            
              '
            
            
              )
logging.error(
            
            
              '
            
            
              ERROR!
            
            
              '
            
            
              )
logging.critical(
            
            
              '
            
            
              CRITICAL
            
            
              '
            
            
              )

            
            
              #
            
            
               2019-09-12 00:40:11 Thu root DEBUG DEBUG!
            
            
              
#
            
            
               2019-09-12 00:40:11 Thu root INFO INFO!
            
            
              
#
            
            
               2019-09-12 00:40:11 Thu root WARNING WARNING!
            
            
              
#
            
            
               2019-09-12 00:40:11 Thu root ERROR ERROR!
            
            
              
#
            
            
               2019-09-12 00:40:11 Thu root CRITICAL CRITICAL
            
          

basicConfig的參數(shù)

filename: 指日志輸出目標(biāo)文件的文件名

filemode: 指定日志的打開模式,默認(rèn)為'a',即在filename存在的時(shí)候有效

format: 指定日志格式字符串,即指定日志輸出時(shí)所包括的字段信息以及他們的順序

datefmt: 指定日期/時(shí)間格式,該項(xiàng)要在format中包含時(shí)間字段%(asctime)時(shí)才有效

level: 指定日志器的日志級別

stream: 指定日志輸出目標(biāo)stream,如sys.stdout、sys.stderr以及網(wǎng)絡(luò)stream,stream和filename不能同時(shí)提供,否則會引發(fā)ValueError異常

style: Python 3.2中新添加的配置項(xiàng),指定format格式字符串的風(fēng)格,可取值為'%'、'{'和'$',默認(rèn)為'%'

handlers: Python 3.3中新添加的配置項(xiàng),該選項(xiàng)如果被指定,它應(yīng)該是一個(gè)創(chuàng)建了多個(gè)Handler的可迭代對象,這些handler將會被添加到root logger.需要說明的是:filename、stream和handlers這三個(gè)配置項(xiàng)只能有一個(gè)存在,不能同時(shí)出現(xiàn)2個(gè)或3個(gè),否則會引發(fā)ValueError異常。

format參數(shù)的格式字符串

            %
            
              (name)s             Logger的名字

            
            %
            
              (levelno)s           數(shù)字形式的日志級別

            
            %
            
              (levelname)s          文本形式的日志級別

            
            %
            
              (pathname)s            調(diào)用日志輸出函數(shù)的模塊的完整路徑名,可能沒有

            
            %
            
              (filename)s            調(diào)用日志輸出函數(shù)的模塊的文件名

            
            %
            
              (module)s              調(diào)用日志輸出函數(shù)的模塊名

            
            %
            
              (funcName)s            調(diào)用日志輸出函數(shù)的函數(shù)名

            
            %
            
              (lineno)d              調(diào)用日志輸出函數(shù)的語句所在的代碼行

            
            %
            
              (created)f            當(dāng)前時(shí)間,用UNIX標(biāo)準(zhǔn)的表示時(shí)間的浮 點(diǎn)數(shù)表示

            
            %
            
              (relativeCreated)d     輸出日志信息時(shí)的,自Logger創(chuàng)建以 來的毫秒數(shù)

            
            %(asctime)s          字符串形式的當(dāng)前時(shí)間。默認(rèn)格式是 “2003-07-08 16:49:45,896
            
              ”。逗號后面的是毫秒

            
            %
            
              (thread)d           線程ID。可能沒有

            
            %
            
              (threadName)s        線程名。可能沒有

            
            %
            
              (process)d         進(jìn)程ID。可能沒有

            
            %(message)s         用戶輸出的消息
          

升級版日志

            
              import
            
            
               logging
LOG_FORMAT 
            
            = 
            
              '
            
            
              %(asctime)s %(name)s %(levelname)s %(pathname)s %(message)s
            
            
              '
            
            
              #
            
            
              配置日記的輸出格式
            
            
DATE_FORMAT = 
            
              '
            
            
              %Y-%m-%d  %H:%M:%S %a
            
            
              '
            
            
              #
            
            
              配置時(shí)間輸出格式
            
            
logging.basicConfig(level=
            
              logging.DEBUG,
                    format
            
            =
            
              LOG_FORMAT,
                    datefmt
            
            =
            
              DATE_FORMAT,
                    filename
            
            =r
            
              '
            
            
              C:\Users\Administrator\PycharmProjects\PYL\temp_file\aaa
            
            
              '
            
            
              
                    )
logging.debug(
            
            
              '
            
            
              DEBUG
            
            
              '
            
            
              )
logging.info(
            
            
              '
            
            
              INFO
            
            
              '
            
            
              )
logging.warning(
            
            
              '
            
            
              WARNING
            
            
              '
            
            
              )
logging.error(
            
            
              '
            
            
              ERROR
            
            
              '
            
            
              )
logging.critical(
            
            
              '
            
            
              CRITICAL
            
            
              '
            
            )
          

打印到文件的內(nèi)容:

            2019-09-12  17:12:12 Thu root DEBUG C:/Users/Administrator/PycharmProjects/PYL/temp_file/
            
              pyfile.py DEBUG

            
            2019-09-12  17:12:12 Thu root INFO C:/Users/Administrator/PycharmProjects/PYL/temp_file/
            
              pyfile.py INFO

            
            2019-09-12  17:12:12 Thu root WARNING C:/Users/Administrator/PycharmProjects/PYL/temp_file/
            
              pyfile.py WARNING

            
            2019-09-12  17:12:12 Thu root ERROR C:/Users/Administrator/PycharmProjects/PYL/temp_file/
            
              pyfile.py ERROR

            
            2019-09-12  17:12:12 Thu root CRITICAL C:/Users/Administrator/PycharmProjects/PYL/temp_file/pyfile.py CRITICAL
          

日志器(Logger)是有層級關(guān)系的,上面調(diào)用的logging模塊級別的函數(shù)所使用的日志器是RootLogger類的實(shí)例,其名稱為'root',它是處于日志器層級關(guān)系最頂層的日志器,且該實(shí)例是以單例模式存在的

如果要記錄的日志中包含變量數(shù)據(jù),可使用一個(gè)格式字符串作為事件的描述消息(logging.debug、logging.info等函數(shù)的第一個(gè)參數(shù)),然后將變量數(shù)據(jù)作為第二個(gè)參數(shù)*args的值進(jìn)行傳遞

            logging.debug(
            
              '
            
            
              This is the %d %s log.
            
            
              '
            
            ,1,
            
              '
            
            
              DEBUG
            
            
              '
            
            )
          
            2019-09-12  17:35:54 Thu root DEBUG C:/Users/Administrator/PycharmProjects/PYL/temp_file/pyfile.py This 
            
              is
            
             the 1 DEBUG log.
          

日志流處理流程

logging模塊的四大組件

1.日志器 Logger 提供了應(yīng)用程序可一直使用的接口

2.處理器 Handler 將logger創(chuàng)建的日志記錄發(fā)送到合適的目的輸出

3.過濾器 Filter 提供了更細(xì)粒度的控制工具來決定輸出哪條日志記錄,丟棄哪條日志記錄

4.格式器 Formatter 決定日志記錄的最終輸出格式

?

組件之間的描述關(guān)系

1.logger需要通過handler將日志信息輸出到目標(biāo)位置,如:文件、sys.stdout、網(wǎng)絡(luò)等

2.不同的logger可以將日志輸出到不同位置

3.每個(gè)handler都可以設(shè)置自己的filter實(shí)現(xiàn)日志過濾,從而只保留感興趣的日志?

4.每個(gè)handler都可以設(shè)置自己的filter實(shí)現(xiàn)同一條日志以不同的格式輸出到不同的地方

5.logger可以設(shè)置多個(gè)handler將同一條日志記錄輸出到不同的位置

即logger是入口,真正干活兒的是handler,handler還可以通過過濾器filter和formatter對要輸出的日志內(nèi)容做過濾和格式化等處理操作

?

與logging四大組件相關(guān)的類:

1.Logger: 提供應(yīng)用程序可直接使用的接口

2.Handler: 發(fā)送日志到適當(dāng)?shù)哪康牡?

3.Filter: 提供了過濾日志信息的方法

4.Formatter: 指定日志顯示格式

?

logging模塊學(xué)習(xí)博客鏈接:https://www.cnblogs.com/Nicholas0707/p/9021672.html


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久久久久99精品 | 一级片特级片 | 99re在线这里只有精品 | 欧美亚洲国产精品 | 日韩欧美视频一区二区在线观看 | 日日噜噜夜夜狠狠视频buoke | 青青青爽视频在线观看入口 | 国产成人在线视频 | 99国产福利 | 久久久久久999 | 奇米影视666| 成人小视频免费在线观看 | 99影视网| 欧美日韩在线免费观看 | 国产在线观看自拍 | 成年黄网站免费大全毛片 | 久久精品视频亚洲 | 日本欧美一区二区三区乱码 | 欧美高清一区二区三区欧美 | 4虎永免费最新永久免费地址 | 中国美女一级a毛片录像在线 | 日本一级淫片a免费播放 | 四虎一区 | 日本在线视频毛片 | 亚洲一一在线 | 91精品国产91久久久久久青草 | 国内精品久久久久影院中国 | 99免费在线播放99久久免费 | 亚洲视频手机在线观看 | 国内外成人在线视频 | 成人免费视频一区 | avtt亚洲一区中文字幕 | 91精品国产综合久久欧美 | 国产精品久久久久激情影院 | 夜夜欢视频 | 国产骚熟 | www.亚洲成人.com | 欧美亚洲专区 | 欧美magnet| 一级毛片视频在线 | 欧美激情特级黄aa毛片 |