首頁 後端開發 Python教學 用 Python 連接 MySQL 的幾種方式詳解_python

用 Python 連接 MySQL 的幾種方式詳解_python

Apr 04, 2018 pm 04:24 PM
mysql python 方式

這篇文章主要介紹了用Python 連接MySQL 的幾種方式,大家可以根據實際情況選擇合理的連接方式,需要的朋友可以參考下

儘管很多NoSQL 數據庫近幾年大放異彩異彩,但是像MySQL 這樣的關係型資料庫依然是網路的主流資料庫之一,每個學Python 的都有必要學好一門資料庫,不管你是做資料分析,還是網路爬蟲,Web 開發、也或機器學習,你都離不開要和資料庫打交道,而MySQL 又是最受歡迎的一種資料庫,這篇文章介紹Python 操作MySQL 的幾種方式,你可以在實際開發過程中根據實際情況合理選擇。

1、MySQL-python

#MySQL-python 又叫MySQLdb,是Python 連結MySQL 最受歡迎的一個驅動,很多框架都也是基於此庫進行開發,遺憾的是它只支援Python2.x,而且安裝的時候有很多前置條件,因為它是基於C開發的庫,在Windows 平台安裝非常不友好,經常出現失敗的情況,現在基本上不建議使用,取代的是它的衍生版本。

# 前置条件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
# 安装
pip install MySQL-python
登入後複製

Windows 直接透過下載exe 檔案安裝,公眾號回覆「win」取得下載連結

#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(
   host="localhost",  # 主机名
   user="john",     # 用户名
   passwd="megajonhy", # 密码
   db="jonhydb")    # 数据库名称
# 查询前,必须先获取游标
cur = db.cursor()
# 执行的都是原生SQL语句
cur.execute("SELECT * FROM YOUR_TABLE_NAME")
for row in cur.fetchall():
  print(row[0])
db.close()
登入後複製

2、mysqlclient

由於MySQL-python 年久失修,後來出現了它的Fork 版本mysqlclient,完全相容於MySQLdb,同時支援Python3 .x,是Django ORM的依賴工具,如果你想使用原生SQL 來操作資料庫,那麼推薦此驅動程式。安裝方式和 MySQLdb 是一樣的,Windows 可以在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 網站找到 對應版本的 whl 套件下載安裝。

# Windows安装
pip install some-package.whl
# linux 前置条件
sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS
brew install mysql-connector-c # macOS (Homebrew)
pip install mysqlclient
登入後複製

3、PyMySQL

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

pip install PyMySQL
# 为了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()
登入後複製

#一個範例

import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', passwd="xxx", db='mysql')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
  print(r)
cur.close()
conn.close()
登入後複製

#4、peewee

寫原生SQL 的過程非常繁瑣,程式碼重複,沒有物件導向思維,接著誕生了許多封裝wrapper 套件和ORM 框架,ORM 是Python 物件與資料庫關係表的一種映射關係,有了ORM 你不再需要寫SQL 語句。提高了寫程式碼的速度,同時相容於多種資料庫系統,如sqlite, mysql、postgresql,付出的代價可能就是效能上的一些損失。如果你對 Django 自帶的 ORM 熟悉的話,那麼 peewee的學習成本幾乎為零。它是 Python 中是最受歡迎的 ORM 框架。

pip install peewee

一個範例

#

import peewee
from peewee import *
db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy')
class Book(peewee.Model):
  author = peewee.CharField()
  title = peewee.TextField()
  class Meta:
    database = db
Book.create_table()
book = Book(author="me", title='Peewee is cool')
book.save()
for book in Book.filter(author="me"):
  print(book.title)
登入後複製

官方文件:http://docs .peewee-orm.com/en/latest/peewee/installation.html

#5、SQLAlchemy##如果想找一種既支持原生SQL,又支援ORM 的工具,那麼SQLAlchemy 是最好的選擇,它就非常接近Java 中的Hibernate 框架。

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
  __tablename__ = 'address'
  id = Column(Integer, primary_key=True)
  street_name = Column(String(250))
engine = create_engine('sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name='new person')
session.add(new_person)
session.commit()
登入後複製

現在差不多搞明白了這幾種資料庫驅動的優劣,接下來你就可以選擇其中的一個進行系統的學習再把它應用到專案中去了,祝你學習開心,不懂的可以諮詢我哈。

相關推薦:


python連接sqlite的實例教學

詳解python連接impala的實例

#使用python連接mongodb並且操作的方法

以上是用 Python 連接 MySQL 的幾種方式詳解_python的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

laravel入門實例 laravel入門實例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

解決數據庫連接問題:使用minii/db庫的實際案例 解決數據庫連接問題:使用minii/db庫的實際案例 Apr 18, 2025 am 07:09 AM

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

laravel框架安裝方法 laravel框架安裝方法 Apr 18, 2025 pm 12:54 PM

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

Python與C:學習曲線和易用性 Python與C:學習曲線和易用性 Apr 19, 2025 am 12:20 AM

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

MySQL與其他編程語言:一種比較 MySQL與其他編程語言:一種比較 Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

Python項目是否需要進行分層? Python項目是否需要進行分層? Apr 19, 2025 pm 10:06 PM

Python項目中的分層結構探討在學習Python的過程中,很多初學者會接觸到一些開源項目,特別是使用Django框架的項...

See all articles