이 기사에서는 Python을 사용하여 MySQL에 연결하는 여러 가지 방법을 주로 소개합니다. 실제 상황에 따라 합리적인 연결 방법을 선택할 수 있습니다. 도움이 필요한 친구는 참고할 수 있습니다.
최근에는 NoSQL 데이터베이스가 많이 대중화되었지만 MySQL처럼 관계형 데이터베이스는 여전히 인터넷의 주류 데이터베이스 중 하나입니다. Python을 배우는 사람은 누구나 데이터베이스를 잘 배워야 합니다. 데이터 분석을 하든, 웹 크롤링을 하든, 웹 개발을 하든, 머신 러닝을 하든 관계형 데이터베이스 없이는 할 수 없습니다. MySQL은 데이터베이스를 다루어야 하며, MySQL은 가장 널리 사용되는 데이터베이스입니다. 이 기사에서는 실제 개발 과정에서 실제 상황에 따라 Python이 MySQL을 작동하는 여러 가지 방법을 소개합니다.
1. MySQL-python
MySQL-python은 MySQL에 연결하는 데 가장 널리 사용되는 드라이버입니다. 불행히도 많은 프레임워크도 이 라이브러리를 기반으로 개발됩니다. 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. MySQL-python의 파손, 나중에 등장 해당 포크 버전 mysqlclient는 MySQLdb와 완벽하게 호환되며 Python3.x를 지원합니다. 기본 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을 작성하는 과정이 매우 번거롭고 코드가 반복됩니다. 객체 지향적 사고가 없으며 많은 패키지 래퍼가 탄생했습니다. 패키지 및 ORM 프레임워크인 ORM은 Python 객체와 데이터베이스 관계형 테이블 간의 매핑 관계입니다. 더 이상 SQL 문을 작성할 필요가 없습니다. 코드 작성 속도를 향상시키고 sqlite, mysql, postgresql 등 다양한 데이터베이스 시스템과 호환됩니다. 지불된 가격으로 인해 성능이 다소 저하될 수 있습니다. Django와 함께 제공되는 ORM에 익숙하다면 peewee의 학습 비용은 거의 0입니다. 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
if 네이티브 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()
이제 데이터베이스 드라이버의 장점과 단점을 거의 이해하셨으니 그 중 하나를 선택하여 체계적으로 공부하시고 프로젝트에 적용하셔도 좋습니다. 아니, 아시는 바가 있으시다면요. , 저에게 상담하실 수 있습니다.
관련 권장사항:
파이썬을 sqlite에 연결하는 예제 튜토리얼
파이썬을 사용하여 mongodb에 연결하고 작동하는 방법
위 내용은 Python_python을 사용하여 MySQL에 연결하는 여러 가지 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!