Python 에서 MySQL 을 연결 하 는 몇 가지 방법

5128 단어 python잇닿다MySQL
비록 많은 NoSQL 데이터 베 이 스 는 최근 몇 년 동안 크게 이 채 를 보 였 지만 MySQL 과 같은 관계 형 데이터 베 이 스 는 여전히 인터넷 의 주류 데이터 베이스 중 하나 입 니 다.모든 파 이 썬 을 배 우 는 사람 은 데이터 베 이 스 를 잘 배 울 필요 가 있 습 니 다.데이터 분석 을 하 든 인터넷 파충류,웹 개발 을 하 든 기계 학습 을 하 든 데이터 베 이 스 를 만 나 야 합 니 다.한편,MySQL 은 가장 유행 하 는 데이터베이스 이기 도 합 니 다.이 글 은 Python 이 MySQL 을 조작 하 는 몇 가지 방식 을 소개 합 니 다.실제 개발 과정 에서 실제 상황 에 따라 합 리 적 으로 선택 할 수 있 습 니 다.
1、MySQL-python
MySQL-python 은 MySQL db 라 고도 부 릅 니 다.Python 이 MySQL 을 연결 하 는 가장 유행 하 는 구동 입 니 다.많은 프레임 워 크 도 이 라 이브 러 리 를 바탕 으로 개발 되 었 습 니 다.안 타 깝 게 도 Python 2.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 파일 을 다운로드 하여 설치 합 니 다.

#!/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 버 전의 my sqlclient 가 나 타 났 습 니 다.MySQL db 를 완전히 호 환 하 는 동시에 Python 3.x 를 지원 합 니 다.Django ORM 의 의존 도구 입 니 다.원생 SQL 을 사용 하여 데이터 베 이 스 를 조작 하려 면 이 드라이버 를 추천 합 니 다.설치 방식 은 MySQLdb 와 같 습 니 다.윈도 우 는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,my sql,postgresql 등 이 지불 하 는 대 가 는 성능 상의 일부 손실 일 수 있 습 니 다.Django 가 가지 고 있 는 ORM 에 익숙 하 다 면 peewee 의 학습 비용 은 거의 0 입 니 다.파 이 썬 에서 가장 유행 하 는 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 가 가장 좋 은 선택 입 니 다.자바 의 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 이 MySQL 을 연결 하 는 몇 가지 방법 에 대한 상세 한 내용 입 니 다.Python 이 MySQL 을 연결 하 는 데 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기