當前位置:首頁 » 編程軟體 » pythonmysql預編譯

pythonmysql預編譯

發布時間: 2022-09-23 03:08:49

1. python操作Mysql的驅動有哪些

使用Python操作MySQL資料庫的方式(驅動)有很多種,比如:PyMySQL、MySQLdb、mysqlclient、SQLAlchemy等等

MySQLdb
MySQLdb是 Python 連接 MySQL 最流行的一個驅動,很多框架都也是基於此庫進行開發,遺憾的是它只支持 Python2.x,它是基於C開發的庫,和Windows 平台的兼容性不友好,現在基本不推薦使用,取代的是它的衍生版本。

mysqlclient
由於 MySQLdb 年久失修,後來出現了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同時支持 Python3.x,是 Django ORM的依賴工具,如果你想使用原生 SQL 來操作資料庫,那麼推薦此驅動。

PyMySQL
PyMySQL是純 Python 實現的驅動,速度上比不上 MySQLdb,最大的特點可能就是它的安裝方式沒那麼繁瑣,同時也兼容 MySQLdb。

SQLAlchemy
SQLAlchemy是一種既支持原生 SQL,又支持 ORM 的工具,它非常接近 Java 中的 Hibernate 框架。
作為一個測試人員,資料庫的操作也必須是要掌握的,如果想系統的學習介面測試相關的技術,可以了解一下黑馬程序員的軟體測試課程,裡面講的非常詳細。

2. 關於python操作MySQL資料庫的問題

這個問題相當好解決啊。你在插數據的時候,是不是定義了ID,讓ID自動增加就可以實現添加而不是覆蓋。

設計資料庫表的時候,第一個欄位ID讓它自增方式。在python寫insert語句時,勉強將你自己定義的ID值放進去。就是insert table () values() 前面那個括弧里不要寫ID,後面values也將ID值去掉

3. joson 、python和mysql的使用

用python內置的json模塊;


importjson
json_obj=json.loads(json_str)


默認是是轉換成python的基本類型,比如字典、列表


如果數據比較復雜,可以考慮為數據定義class,在loads時指定object_hook,可以解析成自定義的對象了


python文檔和網上都有具體例子

4. 如何使用python連接資料庫,插入並查詢數據

你可以訪問Python資料庫介面及API查看詳細的支持資料庫列表。不同的資料庫你需要下載不同的DB API模塊,例如你需要訪問Oracle資料庫和Mysql數據,你需要下載Oracle和MySQL資料庫模塊。
DB-API 是一個規范. 它定義了一系列必須的對象和資料庫存取方式, 以便為各種各樣的底層資料庫系統和多種多樣的資料庫介面程序提供一致的訪問介面 。
Python的DB-API,為大多數的資料庫實現了介面,使用它連接各資料庫後,就可以用相同的方式操作各資料庫。
Python DB-API使用流程:

引入 API 模塊。
獲取與資料庫的連接。
執行SQL語句和存儲過程。
關閉資料庫連接。

什麼是MySQLdb?

MySQLdb 是用於Python鏈接Mysql資料庫的介面,它實現了 Python 資料庫 API 規范 V2.0,基於 MySQL C API 上建立的。

如何安裝MySQLdb?

為了用DB-API編寫MySQL腳本,必須確保已經安裝了MySQL。復制以下代碼,並執行:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

如果執行後的輸出結果如下所示,意味著你沒有安裝 MySQLdb 模塊:
Traceback (most recent call last):
File "test.py", line 3, in <mole>
import MySQLdb
ImportError: No mole named MySQLdb

安裝MySQLdb,請訪問 ,(Linux平台可以訪問:)從這里可選擇適合您的平台的安裝包,分為預編譯的二進制文件和源代碼安裝包。
如果您選擇二進制文件發行版本的話,安裝過程基本安裝提示即可完成。如果從源代碼進行安裝的話,則需要切換到MySQLdb發行版本的頂級目錄,並鍵入下列命令:
$ gunzip MySQL-python-1.2.2.tar.gz
$ tar -xvf MySQL-python-1.2.2.tar
$ cd MySQL-python-1.2.2
$ python setup.py build
$ python setup.py install

注意:請確保您有root許可權來安裝上述模塊。

資料庫連接

連接資料庫前,請先確認以下事項:

您已經創建了資料庫 TESTDB.
在TESTDB資料庫中您已經創建了表 EMPLOYEE
EMPLOYEE表欄位為 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
連接資料庫TESTDB使用的用戶名為 "testuser" ,密碼為 "test123",你可以可以自己設定或者直接使用root用戶名及其密碼,Mysql資料庫用戶授權請使用Grant命令。
在你的機子上已經安裝了 Python MySQLdb 模塊。
如果您對sql語句不熟悉,可以訪問我們的 SQL基礎教程

實例:

以下實例鏈接Mysql的TESTDB資料庫:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# 使用execute方法執行SQL語句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法獲取一條資料庫。
data = cursor.fetchone()

print "Database version : %s " % data

# 關閉資料庫連接
db.close()

執行以上腳本輸出結果如下:
Database version : 5.0.45

創建資料庫表

如果資料庫連接存在我們可以使用execute()方法來為資料庫創建表,如下所示創建表EMPLOYEE:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# 如果數據表已經存在使用 execute() 方法刪除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 創建數據表SQL語句
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""

cursor.execute(sql)

# 關閉資料庫連接
db.close()

資料庫插入操作

以下實例使用執行 SQL INSERT 語句向表 EMPLOYEE 插入記錄:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 插入語句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# 執行sql語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# Rollback in case there is any error
db.rollback()

# 關閉資料庫連接
db.close()

以上例子也可以寫成如下形式:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 插入語句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
('Mac', 'Mohan', 20, 'M', 2000)
try:
# 執行sql語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# 發生錯誤時回滾
db.rollback()

# 關閉資料庫連接
db.close()

實例:

以下代碼使用變數向SQL語句中傳遞參數:
..................................
user_id = "test123"
password = "password"

con.execute('insert into Login values("%s", "%s")' % \
(user_id, password))
..................................

資料庫查詢操作

Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。

fetchone(): 該方法獲取下一個查詢結果集。結果集是一個對象
fetchall():接收全部的返回結果行.
rowcount: 這是一個只讀屬性,並返回執行execute()方法後影響的行數。

實例:

查詢EMPLOYEE表中salary(工資)欄位大於1000的所有數據:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 查詢語句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
try:
# 執行SQL語句
cursor.execute(sql)
# 獲取所有記錄列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 列印結果
print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income )
except:
print "Error: unable to fecth data"

# 關閉資料庫連接
db.close()

以上腳本執行結果如下:
fname=Mac, lname=Mohan, age=20, sex=M, income=2000

資料庫更新操作

更新操作用於更新數據表的的數據,以下實例將 TESTDB表中的 SEX 欄位全部修改為 'M',AGE 欄位遞增1:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 更新語句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX = '%c'" % ('M')
try:
# 執行SQL語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# 發生錯誤時回滾
db.rollback()

# 關閉資料庫連接
db.close()

刪除操作

刪除操作用於刪除數據表中的數據,以下實例演示了刪除數據表 EMPLOYEE 中 AGE 大於 20 的所有數據:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打開資料庫連接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法獲取操作游標
cursor = db.cursor()

# SQL 刪除語句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
# 執行SQL語句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 發生錯誤時回滾
db.rollback()

# 關閉連接
db.close()

執行事務

事務機制可以確保數據一致性。

事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為ACID特性。

原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)。事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。
持久性(rability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

Python DB API 2.0 的事務提供了兩個方法 commit 或 rollback。

5. Python/php MySQL語句解析器解決業務分表

自己曾經做過一個網盤項目。剛開始由於需要快速地從0到1建設上線,所以沒有對核心文檔表進行分表。當然我的架構理念也是「按需架構設計」。產品需求在沒有明確的長遠計劃的情況下以「小步快跑,趕超競品」為主。後期由於產品功能觸達目標用戶群需求點、產品用戶體驗不斷提升、產品多方位導流、加強產品推廣文檔表每天有百萬數據增長量。不得不對文檔表進行按用戶id分表。當時產品功能已全覆蓋文檔的生命周期。產品功能已豐富多彩。修改所有關聯文檔表的業務代碼為按用戶id分表開發測試成本非常高。上線後線上問題不可控。經過考慮在業務代碼最底層DB層進行SQL語句解析來進行用戶id分表處理。這樣的話開發測試成本都非常低。上線後有問題方便回滾和追查原因。

今天為大家介紹Python/PHP兩種MySQL語句解析器。當時網盤項目用的是PHP編程語言開發。

Python的SQL語句解析器 。個人推薦使用moz_sql_parser庫。經調研官方的sqlparse庫解析出來的語句段無法滿足需求也很難理解。

1、Python moz_sql_parser庫安裝

2、Python moz_sql_parser SQL語句解析

3、Python moz_sql_parser總結

PHP的SQL語句解析器。 個人推薦使用PhpMyAdmin的sql-parser組件。PhpMyAdmin是經過 歷史 檢驗可信賴的。

1、PHP PhpMyAdmin/sql-parser安裝

2、PHP PhpMyAdmin/sql-parser SQL語句解析

3、PHP PhpMyAdmin/sql-parser總結

大家有什麼問題可以發評論溝通。

6. python mysql操作問題

dict1 = self.fuc1()
dict2 = self.fun2()
def newdict(self):
dict = {}
for k,v in dict1.items():
dict[k] = v
for k1,v1 in dict2.items():
dict[k1] = v1
return dict

7. 如何使用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代碼

  • __author__='qindongliang'

  • #導入pymysql的包

  • importpymysql

  • try:

  • #獲取一個資料庫連接,注意如果是UTF-8類型的,需要制定資料庫

  • conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')

  • cur=conn.cursor()#獲取一個游標

  • cur.execute('select*fromperson')

  • data=cur.fetchall()

  • fordindata:

  • #注意int類型需要使用str函數轉義

  • print("ID:"+str(d[0])+'名字:'+d[1]+"性別:"+d[2])

  • cur.close()#關閉游標

  • conn.close()#釋放資料庫資源

  • exceptException:print("發生異常")


  • 結果如下:

  • Java代碼

  • D:pythonpython.exeD:/pythonide/pythonprojectworkspace/python/mysql.py

  • ID:1名字:秦天性別:男

  • ID:2名字:王晶性別:女

  • Processfinishedwithexitcode0

  • 原文http://qindongliang1922.iteye.com/blog/2096512

    補充說明:

    mysqldb作為python連接mysql資料庫的工具,但是mysqldb目前支撐的版本較低,安裝失敗。所以才嘗試pymysql,這個比較簡單易用

    軟體下載地址:

    python3.2.5:https://www.python.org/ftp/python/3.2.5/python-3.2.5.msi

    pymysql3.0.5:https://pypi.python.org/packages/source/P/PyMySQL3/PyMySQL3-0.5.tar.gz

    mysql:http://www.phpstudy.net/phpstudy/phpStudyLite.zip(為了方便安裝,我這里選擇phpstudy)

    1、python安裝目錄設定為d:/python32

    2、pymysql安裝方法為:解壓下載的文件,在cmd中運行: python setup.py install。

    檢驗安裝安裝是否成功的方法:import pymysql 。 如果不報錯 說明安裝成功。

    3、mysql安裝目錄為D:/phpStudy/MySQL。為避免更多配置問題,可在啟動phpstudy後,將其設為系統服務

    4、基本操作:

    (1)導入pymysql: import pymysql

    (2)連接資料庫: conn=pymysql.connect(host='localhost',user='root',passwd='root',db='ere',charset='utf8') 務必注意各等號前面的內容!charset參數可避免中文亂碼

    (3)獲取操作游標:cur=conn.cursor()

    (4)執行sql語句,插入記錄:sta=cur.execute("insert 語句") 執行成功後sta值為1。更新、刪除語句與此類似。

    (5)執行sql語句,查詢記錄:cur.execute("select語句") 執行成功後cur變數中保存了查詢結果記錄集,然後再用循環列印結果:

    for each in cur:

    print(each[1].decode('utf-8')) # each[1] 表示當前游標所在行的的第2列值,如果是中文則需要處理編碼

8. Python 訪問 MySQL 資料庫可以使用哪些第三方實現

MySQLdbMySQLdb是 Python 連接 MySQL 最流行的一個驅動,很多框架都也是基於此庫進行開發,遺憾的是它只支持 Python2.x,它是基於C開發的庫,和Windows 平台的兼容性不友好,現在基本不推薦使用,取代的是它的衍生版本。mysqlclient由於 MySQLdb 年久失修,後來出現了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同時支持 Python3.x,是 Django ORM的依賴工具,如果你想使用原生 SQL 來操作資料庫,那麼推薦此驅動。PyMySQLPyMySQL是純 Python 實現的驅動,速度上比不上 MySQLdb,最大的特點可能就是它的安裝方式沒那麼繁瑣,同時也兼容 MySQLdb。SQLAlchemySQLAlchemy是一種既支持原生 SQL,又支持 ORM 的工具,它非常接近 Java 中的 Hibernate 框架。有關Python訪問MySQL資料庫全部內容的學習,我都是通過黑馬程序員的視頻學的。看完之後立馬決定去培訓了。你可以搜搜,都是免費資源。黑馬視頻庫裡面搜索一下,找不到的話官網彈出來的對話框問一下就不會迷路了。

9. 如何使用Python3.4連接MySQL

1、首先下載mysql 資料庫,我安裝的是mysql5.1版本,直接安裝就行,但是如果以後你想在資料庫里顯示中文的話,要把字元集設置為gb2312
2、配置數據源odbc。 mysql-connector-odbc-3.51.20-win32.exe(這是mysql數據源dobc安裝程序),配置odbc過程可以參考 http://jingyan..com/article/8065f87f38b31423312498e4.html
3、安裝mysql管理工具,Navicat for MySQL,打開navicat 後要連接資料庫,具體做法是:在navicat中新建連接,將常規設置填好,如果是訪問本地資料庫,主機名或iP地址可填寫:localhost 或127.0.0.1 有時候只有填其中一個好使另一個則不好使,(筆者這里沒仔細研究)注意!Navicat for MySQL資料庫連接之前要開啟mysql資料庫(服務)...。
4、在navicat中新建的連接中就可以連接mysql資料庫了
5、現在可以導入外部資料庫表,或者自己建立表了,這里談一下筆者在導入外部表時遇到的問題,首先是字元編碼的問題,在mysql安裝的過程中雖然字元編碼設置為gb2312但是在navicat中帶有中文的數據表表(比如excel表)還是無法導入進navicat的資料庫表中,那是因為雖然在mysql裡面設置了字元編碼但是在navicat中沒有設置字元編碼為gb2312,需要在navicat中右鍵資料庫,選擇資料庫屬性把裡面的字元編碼設置成為gb2312方可!
6、至於導入表可以右鍵資料庫中的表選擇導入向導,很容易操作,導出的問題此處不介紹。
7、到現在為止數據的搭建已經結束。

這是我自己總結過的 很好用的 希望採納

10. 如何使用Python3.4連接MySQL

1、去github上下載pymysql的安裝包
2、解壓到某個盤符下
3、打開cmd窗口(win環境下),進入pymysql的根目錄下執行命令,python setup.py install
4、在程序里,導入pymysql
5、開始連接資料庫

熱點內容
pythonstackless 發布:2024-04-24 11:20:18 瀏覽:122
高壓縮比發動機 發布:2024-04-24 11:13:16 瀏覽:344
數獨c語言 發布:2024-04-24 11:05:10 瀏覽:915
sql2008外網訪問 發布:2024-04-24 10:34:20 瀏覽:576
如何在伺服器中添加字 發布:2024-04-24 10:21:43 瀏覽:362
代寫Python 發布:2024-04-24 10:19:08 瀏覽:769
安卓手機如何破九宮鎖 發布:2024-04-24 10:05:47 瀏覽:677
攝像頭要什麼樣的配置好 發布:2024-04-24 09:30:24 瀏覽:365
存儲過程定義多個變數 發布:2024-04-24 09:04:13 瀏覽:762
為什麼安卓手機不值錢 發布:2024-04-24 09:02:40 瀏覽:100