이 기사에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

slicepaythonlistisdoneusingthesyntaxlist [start : step : step] .here'showitworks : 1) startistheindexofthefirstelementtoinclude.2) stopistheindexofthefirstelemement.3) stepisincrementbetwetweentractionsoftortionsoflists

NumpyAllowsForVariousOperationsOnArrays : 1) BasicArithmeticLikeadDition, Subtraction, A 및 Division; 2) AdvancedOperationsSuchasmatrixmultiplication; 3) extrayintondsfordatamanipulation; 5) Ag

Arraysinpython, 특히 Stroughnumpyandpandas, areestentialfordataanalysis, setingspeedandefficiency

ListSandnumpyArraysInpythonHavedifferentmoryfootPrints : ListSaremoreFlexibleButlessMemory-Efficer, whilumpyArraySareOptimizedFornumericalData.1) ListSTorERENFERENCESTOOBJECTS, OverHeadAround64ByTeson64-BitSyStems.2) NumpyArraysTATACONTACOTIGUOU

ToensurePythonScriptTscriptsBecorrectelyRossDevelopment, Staging and Production, UsethesEStrategies : 1) EnvironmberVariblesForsimplesettings, 2) ConfigurationFilesforcomplexSetups 및 3) DynamicLoadingForAdAptability

Python List 슬라이싱의 기본 구문은 목록 [start : stop : step]입니다. 1. Start는 첫 번째 요소 인덱스, 2.Stop은 첫 번째 요소 인덱스가 제외되고 3. Step은 요소 사이의 단계 크기를 결정합니다. 슬라이스는 데이터를 추출하는 데 사용될뿐만 아니라 목록을 수정하고 반전시키는 데 사용됩니다.

ListSoutPerformArraysin : 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData 및 3) MemoryEfficiencyForsParsEdata, butMayHavesLightPerformanceCosceperationOperations.

TOCONVERTAPYTHONARRAYTOALIST, USETHELIST () CONSTUCTORORAGENERATERATOREXPRESSION.1) importTheArrayModuleAndCreateAnarray.2) USELIST (ARR) 또는 [XFORXINARR] TOCONVERTITTOALIST.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
