導航:首頁 > 編程語言 > pythonmysqldb文檔

pythonmysqldb文檔

發布時間:2023-01-18 08:56:00

⑴ 如何使用python3.4連接MySQL

序號 描述

1 去github上下載pymysql的安裝包pymysql

2 解壓到某個盤符下

3 打開cmd窗口(win環境下),進入pymysql的根目錄下執行命令,python setup.py install

4 在程序里,導入pymysql

5 開始連接資料庫


資料庫操作的API文檔連接:http://legacy.python.org/dev/peps/pep-0249/

代碼如下:

Python代碼

⑵ 請教個 python mysqldb commit的問題

任何應用都離不開數據,所以在學習python的時候,當然也要學習一個如何用python操作資料庫了。MySQLdb就是python對mysql資料庫操作的模塊。官方Introction : MySQLdb is an thread-compatible interface to the popular MySQL database server that provides the Python database API. 它其實相當於翻譯了對應C的介面。

使用這種資料庫介面大多是就是執行連接資料庫->執行query->提取數據->關閉連接 這幾個步驟。MySQLdb提供比較關鍵的對象,分別是Connection、Cursor、Result。具體使用步驟很簡單先不寫了,先寫一些個人認為比較重要、值得注意的地方。

1、雖然在MySQLdb.Connect(host ,user , passw , db)函數中,我們經常使用的只是這幾個參數,但是其實裡面還有很多比如字元集、線程安全、ssl等也都是很重要的參數,使用時要身份注意。

2、當使用Connection.query()函數進行query後,connection 對象可以返回兩種result,分別是store_result和use_result,store_result 將結果集存回client端,而use_result則是結果集保存在server端,並且維護了一個連接,會佔用server資源。此時,不可以進行任何其他的查詢。建議使用store_result,除非返回結果集(result set)過大或是無法使用limit的情形。

3、提取(fetch)數據的返回形式大多有三種情形。 as a tuple(how=0) ;as dictionaries, key=column or table.column if plicated(how=1);as dictionaries, key=table.column (how=2)

4、每次fetch,在result內部都會產生數據位置的移動,也就是說假如有10行數據,執行result.fetch_row(3,0),會得到前三行,再執行result.fetch_row(3,0),則會得到中間的三行,所以說fetch會導致position的移動。另外值得注意的是,如果使用use_result,也就是數據存儲在server時,在fetch所有的條目之前,不能進行任何的query操作。

5、mysql本身不支持游標(Cursor),但是MySQLdb對Cursor進行了模擬。重要的執行query方法有execute 和 executemany 。execute方法,執行單條sql語句,調用executemany方法很好用,資料庫性能瓶頸很大一部分就在於網路IO和磁碟IO將多個insert放在一起,只執行一次IO,可以有效的提升資料庫性能。游標cursor具有fetchone、fetchmany、fetchall三個方法提取數據,每個方法都會導致游標游動,所以必須關注游標的位置。游標的scroll(value, mode)方法可以使得游標進行卷動,mode參數指定相對當前位置(relative)還是以絕對位置(absolute)進行移動。

6、MySQLdb提供了很多函數方法,在官方指南里沒有完全羅列,使用者可以用help去看看,裡面提供了很多方便的東西。

7、對於mysql來說,如果使用支持事務的存儲引擎,那麼每次操作後,commit是必須的,否則不會真正寫入資料庫,對應rollback可以進行相應的回滾,但是commit後是無法再rollback的。commit() 可以在執行很多sql指令後再一次調用,這樣可以適當提升性能。

8、executemany處理過多的命令也不見得一定好,因為數據一起傳入到server端,可能會造成server端的buffer溢出,而一次數據量過大,也有可能產生一些意想不到的麻煩。合理,分批次executemany是個不錯的辦法。

最後,我自己寫了個pyMysql模塊,主要是對MySQLdb提供的常用方法進行了簡單的再次封裝,也藉此機會好好學習下MySQLdb,以及練習python的編碼。該程序使用的資料庫表,採用myisam引擎,所以沒加上commit(),一般最好還是要加上的。

⑶ python中mysqldb的connect怎麼驗證是否連接成功

代碼如下:
# -*- coding: utf-8 -*-
#mysqldb
import time, MySQLdb
#連接
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="test",charset="utf8")cursor = conn.cursor()
#寫入
sql = "insert into user(name,created) values(%s,%s)"param = ("aaa",int(time.time()))
n = cursor.execute(sql,param)
print n
#更新
sql = "update user set name=%s where id=3"param = ("bbb")
n = cursor.execute(sql,param)
print n
#查詢
n = cursor.execute("select * from user")
for row in cursor.fetchall():
for r in row:
print r
#刪除
sql = "delete from user where name=%s"
param =("aaa")
n = cursor.execute(sql,param)
print n
cursor.close()
#關閉
conn.close()
復制代碼
基本的使用如上,還是很簡單的,進一步使用還沒操作,先從網上找點資料放上來,以備後續查看1.引入MySQLdb庫
import MySQLdb
2.和資料庫建立連接
conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable",charset="utf8")提供的connect方法用來和資料庫建立連接,接收數個參數,返回連接對象.
比較常用的參數包括
host:資料庫主機名.默認是用本地主機.
user:資料庫登陸名.默認是當前用戶.
passwd:資料庫登陸的秘密.默認為空.
db:要使用的資料庫名.沒有默認值.
port:MySQL服務使用的TCP埠.默認是3306.
charset:資料庫編碼.
更多關於參數的信息可以查這里
http://mysql-python.sourceforge.net/MySQLdb.html然後,這個連接對象也提供了對事務操作的支持,標準的方法commit() 提交
rollback() 回滾
3.執行sql語句和接收返回值
cursor=conn.cursor()
n=cursor.execute(sql,param)
首先,我們用使用連接對象獲得一個cursor對象,接下來,我們會使用cursor提供的方法來進行工作.這些方法包括兩大類:1.執行命令,2.接收返回值cursor用來執行命令的方法:
callproc(self, procname, args):用來執行存儲過程,接收的參數為存儲過程名和參數列表,返回值為受影響的行數execute(self, query, args):執行單條sql語句,接收的參數為sql語句本身和使用的參數列表,返回值為受影響的行數executemany(self, query, args):執行單條sql語句,但是重復執行參數列表裡的參數,返回值為受影響的行數nextset(self):移動到下一個結果集
cursor用來接收返回值的方法:
fetchall(self):接收全部的返回結果行.
fetchmany(self, size=None):接收size條返回結果行.如果size的值大於返回的結果行的數量,則會返回cursor.arraysize條數據.
fetchone(self):返回一條結果行.
scroll(self, value, mode='relative'):移動指針到某一行.如果mode='relative',則表示從當前所在行移動value條,如果mode='absolute',則表示從結果集的第一行移動value條.
下面的代碼是一個完整的例子.
#使用sql語句,這里要接收的參數都用%s佔位符.要注意的是,無論你要插入的數據是什麼類型,佔位符永遠都要用%ssql="insert into cdinfo values(%s,%s,%s,%s,%s)"#param應該為tuple或者list
param=(title,singer,imgurl,url,alpha)
#執行,如果成功,n的值為1
n=cursor.execute(sql,param)
#再來執行一個查詢的操作
cursor.execute("select * from cdinfo")
#我們使用了fetchall這個方法.這樣,cds里保存的將會是查詢返回的全部結果.每條結果都是一個tuple類型的數據,這些tuple組成了一個tuplecds=cursor.fetchall()
#因為是tuple,所以可以這樣使用結果集
print cds[0][3]
#或者直接顯示出來,看看結果集的真實樣子
print cds
#如果需要批量的插入數據,就這樣做
sql="insert into cdinfo values(0,%s,%s,%s,%s,%s)"#每個值的集合為一個tuple,整個參數集組成一個tuple,或者listparam=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))#使用executemany方法來批量的插入數據.這真是一個很酷的方法!
n=cursor.executemany(sql,param)
4.關閉資料庫連接
需要分別的關閉指針對象和連接對象.他們有名字相同的方法cursor.close()
conn.close()
四步完成,基本的資料庫操作就是這樣了.下面是兩個有用的連接MySQLdb用戶指南: http://mysql-python.sourceforge.net/MySQLdb.htmlMySQLdb文檔: http://mysql-python.sourceforge.net/MySQLdb-1.2.2/public/MySQLdb-mole.html5 編碼(防止亂碼)
需要注意的點:
1 Python文件設置編碼 utf-8 (文件前面加上 #encoding=utf-8)2 MySQL資料庫charset=utf-8
3 Python連接MySQL是加上參數 charset=utf8
4 設置Python的默認編碼為 utf-8 (sys.setdefaultencoding(utf-8)復制代碼 代碼如下:
#encoding=utf-8
import sys
import MySQLdb
reload(sys)
sys.setdefaultencoding('utf-8')
db=MySQLdb.connect(user='root',charset='utf8')註:MySQL的配置文件設置也必須配置成utf8
設置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都設置默認的字元集(通常在/etc/mysql/my.cnf):
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8

⑷ 如何安裝python的MySQLdb模塊

到官方下載MySQL for Python

然後解壓,打開README:

裡面有安裝過程:

$tarxfzMySQL-python-1.2.1.tar.gz
$cdMySQL-python-1.2.1
$#editsite.cfgifnecessary
$pythonsetup.pybuild
$sudopythonsetup.pyinstall#orsufirst

不過在python setup.py build時報錯:

ImportError: No mole named setuptools

ubuntu下安裝:

sudo apt-get install python-setuptools

python-setuptools : Python Distutils Enhancements (setuptools compatibility)

然後再次python setup.py build,又報錯:

EnvironmentError: mysql_config not found

因為mysql_config是屬於MySQL開發用的文件,而使用apt-get安裝的MySQL是沒有這個文件的,於是在包安裝器裡面尋找

sudo apt-get install libmysqld-dev

libmysqld-dev : MySQL embedded database development files

再次運行python setup.py build,報錯:

building 『_mysql』 extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,』final』,0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
In file included from _mysql.c:29:0:
pymemcompat.h:10:20: fatal error: Python.h: No such file or directory

解決方案,

sudo apt-get install python-dev

python-dev : header files and a static library for Python (default)

然後就按照README里的:

$ python setup.py build
$ sudo python setup.py install

測試:

>>>import MySQLdb

沒有報錯即可。

⑸ python怎麼處理mysql dmp文件

在Windows平台上安裝mysql模塊用於Python開發

用python連接mysql的時候,需要用的安裝版本,源碼版本容易有錯誤提示。下邊是打包了32與64版本。
MySQL-python-1.2.3.win32-py2.7.exe
MySQL-python-1.2.3.win-amd64-py2.7.exe
實例 1、取得 MYSQL 的版本

# -*- coding: UTF-8 -*-
#安裝 MYSQL DB for python
import MySQLdb as mdb
con = None
try:
#連接 mysql 的方法: connect('ip','user','password','dbname')
con = mdb.connect('localhost', 'root','root', 'test');

#所有的查詢,都在連接 con 的一個模塊 cursor 上面運行的
cur = con.cursor()

#執行一個查詢
cur.execute("SELECT VERSION()")
#取得上個查詢的結果,是單個結果

data = cur.fetchone()
print "Database version : %s " % data
finally:
if con:
#無論如何,連接記得關閉
con.close()

實例 2、創建一個表並且插入數據

import MySQLdb as mdb
import sys

#將 con 設定為全局連接
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:

#獲取連接的 cursor,只有獲取了 cursor,我們才能進行各種操作
cur = con.cursor()

#創建一個數據表 writers(id,name)
cur.execute("CREATE TABLE IF NOT EXISTS
Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")

#以下插入了 5 條數據
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")

實例 3、 python 使用 slect 獲取 mysql 的數據並遍歷

import MySQLdb as mdb
import sys

#連接 mysql,獲取連接的對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:

#仍然是,第一步要獲取連接的 cursor 對象,用於執行查詢
cur = con.cursor()

#類似於其他語言的 query 函數, execute 是 python 中的執行查詢函數
cur.execute("SELECT * FROM Writers")

#使用 fetchall 函數,將結果集(多維元組)存入 rows 裡面
rows = cur.fetchall()

#依次遍歷結果集,發現每個元素,就是表中的一條記錄,用一個元組來顯示
for row in rows:
print row

運行結果:

(1L, 『Jack London')
(2L, 『Honore de Balzac')
(3L, 『Lion Feuchtwanger')
(4L, 『Emile Zola')
(5L, 『Truman Capote')
上面的代碼,用來將所有的結果取出,不過列印的時候是每行一個元祖列印,現在我們使用方法,取出其中的單個數據:

import MySQLdb as mdb
import sys

#獲取 mysql 的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
#獲取執行查詢的對象
cur = con.cursor()
#執行那個查詢,這里用的是 select 語句
cur.execute("SELECT * FROM Writers")
#使用 cur.rowcount 獲取結果集的條數
numrows = int(cur.rowcount)
#循環 numrows 次,每次取出一行數據
for i in range(numrows):
#每次取出一行,放到 row 中,這是一個元組(id,name)
row = cur.fetchone()
#直接輸出兩個元素
print row[0], row[1]

運行結果:

1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 4、使用字典 cursor 取得結果集(可以使用表欄位名字訪問值)

import MySQLdb as mdb
import sys
#獲得 mysql 查詢的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取連接上的字典 cursor,注意獲取的方法,
#每一個 cursor 其實都是 cursor 的子類
cur = con.cursor(mdb.cursors.DictCursor)
#執行語句不變
cur.execute("SELECT * FROM Writers")
#獲取數據方法不變
rows = cur.fetchall()
#遍歷數據也不變(比上一個更直接一點)
for row in rows:
#這里,可以使用鍵值對的方法,由鍵名字來獲取數據
print "%s %s" % (row["Id"], row["Name"])

實例 5、獲取單個表的欄位名和信息的方法

import MySQLdb as mdb
import sys
#獲取資料庫的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取普通的查詢 cursor
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
#獲取連接對象的描述信息
desc = cur.description
print 'cur.description:',desc
#列印表頭,就是欄位名字
print "%s %3s" % (desc[0][0], desc[1][0])
for row in rows:
#列印結果
print "%2s %3s" % row

運行結果:

cur.description: ((『Id', 3, 1, 11, 11, 0, 0), (『Name', 253, 17, 25, 25, 0, 1))
Id Name
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 6、使用 Prepared statements 執行查詢(更安全方便)

import MySQLdb as mdb
import sys

con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
cur = con.cursor()
#我們看到,這里可以通過寫一個可以組裝的 sql 語句來進行
cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Guy de Maupasant", "4"))
#使用 cur.rowcount 獲取影響了多少行
print "Number of rows updated: %d" % cur.rowcount

結果:
Number of rows updated: 1

實例 7、把圖片用二進制存入 MYSQL

有人喜歡把圖片存入 MYSQL(這種做法貌似很少吧),我看大部分的程序,圖片都是存放在伺服器上的文件,資料庫中存的只是圖片的地址而已,不過 MYSQL 是支持把圖片存入資料庫的,也相應的有一個專門的欄位 BLOB (Binary Large Object),即較大的二進制對象欄位,請看如下程序,注意測試圖片自己隨便找一個,地址要正確:
首先,在資料庫中創建一個表,用於存放圖片:

復制代碼代碼如下:

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);

然後運行如下 PYTHON 代碼進行:

import MySQLdb as mdb
import sys

try:
#用讀文件模式打開圖片
fin = open("../web.jpg")
#將文本讀入 img 對象中
img = fin.read()
#關閉文件
fin.close()
except IOError, e:
#如果出錯,列印錯誤信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
try:
#鏈接 mysql,獲取對象
conn = mdb.connect(host='localhost',user='root',passwd='root',
db='test')
#獲取執行 cursor
cursor = conn.cursor()
#直接將數據作為字元串,插入資料庫
cursor.execute("INSERT INTO Images SET Data='%s'" %
mdb.escape_string(img))
#提交數據
conn.commit()
#提交之後,再關閉 cursor 和鏈接
cursor.close()
conn.close()
except mdb.Error, e:
#若出現異常,列印信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

實例 8、從資料庫中把圖片讀出來

import MySQLdb as mdb
import sys

try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#執行查詢該圖片欄位的 SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二進制寫文件的方法,打開一個圖片文件,若不存在則自動創建
fout = open('image.png','wb')
#直接將數據如文件
fout.write(cursor.fetchone()[0])
#關閉寫入的文件
fout.close()
#釋放查詢數據的資源
cursor.close()
conn.close()
except IOError, e:
#捕獲 IO 的異常 ,主要是文件寫入會發生錯誤
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

實例 9、使用 Transaction 即事務(手動提交,自動回滾)

import MySQLdb as mdb
import sys

try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#如果某個資料庫支持事務,會自動開啟
#這里用的是 MYSQL,所以會自動開啟事務(若是 MYISM 引擎則不會)
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Leo Tolstoy", "1"))
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Boris Pasternak", "2"))
cursor.execute("UPDATE Writer SET Name = %s WHERE Id = %s",
("Leonid Leonov", "3"))
#事務的特性 1、原子性的手動提交
conn.commit()
cursor.close()
conn.close()
except mdb.Error, e:
#如果出現了錯誤,那麼可以回滾,就是上面的三條語句要麼執行,要麼都不執行
conn.rollback()
print "Error %d: %s" % (e.args[0],e.args[1])

結果:
1、因為不存在 writer 表( SQL 第三條語句),所以出現錯誤:Error 1146: Table 『test.writer' doesn't exist
2、出現錯誤,出發異常處理, 3 條語句的前兩條會自動變成了沒有執行,結果不變
3、如果本代碼放到一個 MyISAM 引擎表,前兩句會執行,第三句不會;如果是 INNDB 引擎,則都不會執行。

⑹ python mysqldb的問題

在connect的時候增加一個localfile 參數,如下:
MySQLdb.connect(server, username, password, database, local_infile = 1)

參考資料:http://stackoverflow.com/questions/12890098/mysql-load-data-local-infile-python

⑺ python怎麼打開資料庫文件

以打開mysql資料庫為例來說明:
#!/usr/bin/python
import MySQLdb
# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
#打開游標
cursor = db.cursor()
# 執行資料庫查詢
cursor.execute("SELECT VERSION()")
# 獲取結果集的第一行
data = cursor.fetchone()
print "Database version : %s " % data
# 關閉連接
db.close()

⑻ python使用mysqlDB出錯的問題, 你解決了嗎,我也是一直出現同樣的錯誤20170819 10:22

1)首先 官網下載MySQL-python-1.2.3.tar.gz。
2)這時你可以直接解壓或是在shell中用tar命令解壓,j進入其解壓目錄下執行python setup.py install.這個時候可能會引發一系列的問題:
A)提示缺失setuptools,這是因為安裝mysql-python時需要用到setuptools提供的組件,
下載與你系統上所裝的python相對應的setuptools,
我這里下載的是 setuptools-0.6c11-py2.7.egg (md5),到下載目錄下,執行sh setuptools-0.6c11-py2.7.egg,
這樣就將其安裝上了!
B)繼續執行python setup.py install,可能出現以下錯誤:
======> pymemcompat.h:10:20: 致命錯誤:Python.h:沒有那個文件或目錄 編譯中斷。
出現這個問題的原因是,系統中的python是自帶的,而沒有安裝python的開發包並沒有安裝,所以在shell下執行如下命令:
點擊(此處)折疊或打開
yum install python-devel
C)和B)一樣執行命令後,還可能出現這樣的類似的錯誤:
=======>_mysql.c:36:23: 致命錯誤:my_config.h:沒有那個文件或目錄 編譯中斷。
顯而易見,解決的方法和上面的也是一樣的,這是因為mysql開發包未安裝,同樣執行以下命令就可以解決了!
點擊(此處)折疊或打開
yum install mysql-devel
3)最後,問題就圓滿解決了!(PS:前提是你已經安裝好了mysql,如果沒有也會觸發相應錯誤,這時只要安裝就行了)
4)測試,如下:
點擊(此處)折疊或打開
>>> db = MySQLdb.connect(user='root', db='test', passwd='123456',host='127.0.0.1') //資料庫連接
>>> cursor = db.cursor() // 創建游標
>>> cursor.execute('select name from test order by id') // 執行查詢語句
>>> names = [row[0] for row in cursor.fetchall()] // 列表解析,提取數據
>>> print names
['loogn', 'qiang']
>>> db.close() // 關閉資料庫
>>>

附:ubuntu下安裝python mysqldb的支持:
sudo apt-get install mysql-server mysql-client libmysqlclient15-dev
wget -c
sudo python ez_setup.py
sudo easy_install MySQL-python

⑼ 如何在mac的python導入mysqldb

下載MySQLdb 在SourceForge可以下載MySQL-python-1.2.4b4.tar,下載後解壓,然後在終端Terminal中執行以下命令: new-host-3:~ iFantastic$ cd /Users/iFantastic/Downloads/MySQL-python-1.2.4b4 new-host-3:MySQL-python-1.2.4b4 iFantastic$ ...

閱讀全文

與pythonmysqldb文檔相關的資料

熱點內容
抖音上的程序員和真正的程序員 瀏覽:300
查看kernel編譯器 瀏覽:279
給plc程序加密 瀏覽:225
python多進程數據共享 瀏覽:847
華為和安卓系統有什麼不一樣 瀏覽:106
python中wb表怎麼列印 瀏覽:297
python如何把字元串賦給數組 瀏覽:229
狄克斯特拉演算法是什麼 瀏覽:675
室內裝飾材料pdf 瀏覽:633
gitbook命令行 瀏覽:1000
啟動zookeeper命令 瀏覽:527
健身館app怎麼樣 瀏覽:314
python可視化項目 瀏覽:442
安卓機怎麼辨別蘋果機真假 瀏覽:711
微信小程序源碼轉成抖音 瀏覽:654
優省油app怎麼沒法下載 瀏覽:72
pdf格式轉換excel 瀏覽:625
高爾夫6壓縮機響 瀏覽:310
優盤文件夾自動恢復 瀏覽:76
有伺服器怎麼製作小程序 瀏覽:132