ฉันจะเชื่อมต่อกับฐานข้อมูล MySQL โดยใช้โปรแกรมไพ ธ อนได้อย่างไร
pymysql
เพราะมันเป็น Python ฟรีที่บริสุทธิ์ตามการเปรียบเทียบนี้
ฉันจะเชื่อมต่อกับฐานข้อมูล MySQL โดยใช้โปรแกรมไพ ธ อนได้อย่างไร
pymysql
เพราะมันเป็น Python ฟรีที่บริสุทธิ์ตามการเปรียบเทียบนี้
คำตอบ:
1 - การตั้งค่า
คุณต้องติดตั้งไดรเวอร์ MySQL ก่อนทำอะไร แตกต่างจาก PHP มีเพียงไดรเวอร์ SQLite เท่านั้นที่ติดตั้งตามค่าเริ่มต้นด้วย Python แพ็คเกจที่ใช้บ่อยที่สุดคือMySQLdbแต่ยากที่จะติดตั้งโดยใช้ easy_install โปรดทราบว่า MySQLdb รองรับ Python 2 เท่านั้น
สำหรับผู้ใช้ Windows คุณสามารถรับMySQLdbได้
สำหรับ Linux นี่เป็นแพ็คเกจชั่วคราว (python-mysqldb) (คุณสามารถใช้sudo apt-get install python-mysqldb
(สำหรับ distros based debian), yum install MySQL-python
(สำหรับ rpm-based) หรือdnf install python-mysql
(สำหรับ fedora distro ที่ทันสมัย) ในบรรทัดคำสั่งเพื่อดาวน์โหลด)
สำหรับ Mac คุณสามารถติดตั้ง MySQLdb ใช้ Macport
2 - การใช้งาน
หลังจากติดตั้งแล้วให้รีบูท นี่ไม่ใช่ข้อบังคับ แต่มันจะป้องกันไม่ให้ฉันตอบคำถามอื่น 3 หรือ 4 ข้อในโพสต์นี้หากมีสิ่งผิดปกติเกิดขึ้น ดังนั้นโปรดรีบูต
จากนั้นมันก็เหมือนกับการใช้แพคเกจอื่น ๆ :
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="john", # your username
passwd="megajonhy", # your password
db="jonhydb") # name of the data base
# you must create a Cursor object. It will let
# you execute all the queries you need
cur = db.cursor()
# Use all the SQL you like
cur.execute("SELECT * FROM YOUR_TABLE_NAME")
# print all the first cell of all the rows
for row in cur.fetchall():
print row[0]
db.close()
แน่นอนว่ามีความเป็นไปได้และทางเลือกนับพันรายการ นี่เป็นตัวอย่างพื้นฐานมาก คุณจะต้องดูเอกสารประกอบ เป็นจุดเริ่มต้นที่ดี
3 - การใช้งานขั้นสูงเพิ่มเติม
เมื่อคุณรู้วิธีการทำงานคุณอาจต้องการใช้ORMเพื่อหลีกเลี่ยงการเขียน SQL ด้วยตนเองและจัดการตารางของคุณเนื่องจากเป็นวัตถุ Python ออมที่มีชื่อเสียงที่สุดในชุมชนงูหลามเป็นSQLAlchemy
ฉันขอแนะนำให้คุณใช้: ชีวิตของคุณจะง่ายขึ้นมาก
ฉันเพิ่งค้นพบอัญมณีอื่นในโลกหลาม: แคระ มันเป็น ORM ที่ยอดเยี่ยมมากติดตั้งและใช้งานง่ายและรวดเร็ว มันทำให้วันของฉันสำหรับโครงการขนาดเล็กหรือแอปสแตนด์อะโลนซึ่งการใช้เครื่องมือขนาดใหญ่เช่น SQLAlchemy หรือ Django นั้นเกินความจริง:
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
ตัวอย่างนี้ใช้ได้นอกกรอบ ไม่มีสิ่งใดนอกจากการมี peewee ( pip install peewee
)
pip install MySQL-python
นี่คือวิธีหนึ่งในการใช้MySQLdbซึ่งรองรับ Python 2 เท่านั้น:
#!/usr/bin/python
import MySQLdb
# Connect
db = MySQLdb.connect(host="localhost",
user="appuser",
passwd="",
db="onco")
cursor = db.cursor()
# Execute SQL select statement
cursor.execute("SELECT * FROM location")
# Commit your changes if writing
# In this case, we are only reading data
# db.commit()
# Get the number of rows in the resultset
numrows = cursor.rowcount
# Get and display one row at a time
for x in range(0, numrows):
row = cursor.fetchone()
print row[0], "-->", row[1]
# Close the connection
db.close()
No module named MySQLdb
บอกว่า ฉันจะใช้ mysql กับ python บนโฮสติ้งที่ใช้ร่วมกันได้อย่างไร ทางเลือกใด ๆ
ขณะนี้ Oracle (MySQL) สนับสนุนตัวเชื่อมต่อ Python อย่างแท้จริง นั่นหมายความว่าไม่มีไบนารี่ที่จะติดตั้ง: มันเป็นเพียงห้องสมุด Python มันเรียกว่า "Connector / Python"
ถ้าคุณไม่จำเป็นต้อง MySQLdb แต่จะยอมรับห้องสมุดใด ๆ ฉันจะมากมากแนะนำ MySQL Connector / หลามจาก MySQL: http://dev.mysql.com/downloads/connector/python/
เป็นแพ็คเกจเดียว (ประมาณ 110k), Pure Python ดังนั้นมันจึงเป็นระบบอิสระและติดตั้งได้ง่าย คุณเพิ่งดาวน์โหลดดับเบิลคลิกยืนยันข้อตกลงสิทธิ์การใช้งานและไป ไม่จำเป็นต้องมี Xcode, MacPorts, การรวบรวม, การเริ่มต้นใหม่ ...
จากนั้นคุณเชื่อมต่อเช่น:
import mysql.connector
cnx = mysql.connector.connect(user='scott', password='tiger',
host='127.0.0.1',
database='employees')
try:
cursor = cnx.cursor()
cursor.execute("""
select 3 from your_table
""")
result = cursor.fetchall()
print result
finally:
cnx.close()
rpm -i mysql-connector-python-1.1.5-1.el6.noarch.rpm
error: Failed dependencies:
rpmlib(FileDigests) <= 4.6.0-1 is needed by mysql-connector-python-1.1.5-1.el6.noarch
rpmlib(PayloadIsXz) <= 5.2-1 is needed by mysql-connector-python-1.1.5-1.el6.noarch
pip install mysql-connector-python
ยังจะทำงาน ฉันไม่เห็นว่าจะบอกว่าไม่รองรับ PyPi อีกต่อไปหรือไม่ ดีมากถ้าคุณไม่มีสิทธิ์เข้าถึงคอมไพเลอร์ gcc / C บนระบบของคุณและไม่สามารถติดตั้งmysqldb
ได้
pip search mysql-connector
เพื่อค้นหาชื่อแพ็คเกจ คำตอบจากที่นี่: stackoverflow.com/a/22829966/2048266
หยุดใช้ MySQLDb หากคุณต้องการหลีกเลี่ยงการติดตั้งส่วนหัว mysql เพื่อเข้าถึง mysql จาก python
ใช้pymysql มันไม่ทั้งหมดของสิ่งที่ MySQLdb ไม่ แต่มันถูกนำมาใช้อย่างหมดจดในหลามกับNO ภายนอกอ้างอิง ทำให้กระบวนการติดตั้งในระบบปฏิบัติการทั้งหมดสอดคล้องกันและใช้งานง่าย pymysql
เป็นการลดลงของการแทนที่สำหรับ MySQLDb และ IMHO ไม่มีเหตุผลใดที่จะใช้ MySQLDb เพื่ออะไร ... เคยมีมา! - PTSD from installing MySQLDb on Mac OSX and *Nix systems
แต่นั่นเป็นเพียงฉัน
การติดตั้ง
pip install pymysql
แค่นั้นแหละ ... คุณพร้อมที่จะเล่น
ตัวอย่างการใช้งานจาก pymysql Github repo
import pymysql.cursors
import pymysql
# Connect to the database
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
# connection is not autocommit by default. So you must commit to save
# your changes.
connection.commit()
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('webmaster@python.org',))
result = cursor.fetchone()
print(result)
finally:
connection.close()
นอกจากนี้ - แทนที่ MySQLdb ในรหัสที่มีอยู่อย่างรวดเร็วและโปร่งใส
หากคุณมีรหัสที่มีอยู่ซึ่งใช้ MySQLdb คุณสามารถแทนที่ด้วย pymysql ได้โดยใช้กระบวนการง่ายๆนี้:
# import MySQLdb << Remove this line and replace with:
import pymysql
pymysql.install_as_MySQLdb()
การอ้างอิงที่ตามมาทั้งหมดกับ MySQLdb จะใช้ pymysql อย่างโปร่งใส
ลองใช้MySQLdb MySQLdb รองรับ Python 2 เท่านั้น
มีหน้าวิธีการที่นี่: http://www.kitebird.com/articles/pydbapi.html
จากหน้า:
# server_version.py - retrieve and display database server version
import MySQLdb
conn = MySQLdb.connect (host = "localhost",
user = "testuser",
passwd = "testpass",
db = "test")
cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
cursor.close ()
conn.close ()
localhost
)
ในฐานะที่เป็นคนขับ DB ยังมีoursql บางส่วนของเหตุผลที่ระบุไว้ในลิงค์นั้นซึ่งบอกว่าทำไมตารางของเราดีกว่า
- oursql มีพารามิเตอร์จริงส่ง SQL และข้อมูลไปยัง MySQL แยกจากกันโดยสิ้นเชิง
- oursql อนุญาตให้สตรีมข้อความหรือข้อมูลไบนารีลงในฐานข้อมูลและสตรีมออกจากฐานข้อมูลแทนที่จะกำหนดให้ทุกอย่างต้องถูกบัฟเฟอร์ในไคลเอนต์
- sql ของเราสามารถแทรกแถวอย่างเกียจคร้านและดึงแถวได้อย่างเกียจคร้าน
- oursql มีการสนับสนุน Unicode เป็นค่าเริ่มต้น
- sql ของเรารองรับ python 2.4 ถึง 2.7 โดยไม่มีคำเตือนเรื่องการคัดค้านใน 2.6+ (ดู PEP 218) และโดยไม่ล้มเหลวใน 2.7 (ดู PEP 328)
- sql ของเราทำงานโดยกำเนิดบน python 3.x
คล้ายกับ mysqldb มาก:
import oursql
db_connection = oursql.connect(host='127.0.0.1',user='foo',passwd='foobar',db='db_name')
cur=db_connection.cursor()
cur.execute("SELECT * FROM `tbl_name`")
for row in cur.fetchall():
print row[0]
การสอนในเอกสารประกอบนั้นค่อนข้างดี
และแน่นอนว่า ORM SQLAlchemy เป็นตัวเลือกที่ดีดังที่ได้กล่าวไปแล้วในคำตอบอื่น ๆ
เรียกใช้คำสั่งนี้ในเทอร์มินัลของคุณเพื่อติดตั้งตัวเชื่อมต่อ mysql:
pip install mysql-connector-python
และรันสิ่งนี้ในเครื่องมือแก้ไข python ของคุณเพื่อเชื่อมต่อกับ MySQL:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yusername",
passwd="password",
database="database_name"
)
ตัวอย่างในการรันคำสั่ง MySQL (ใน python edior ของคุณ):
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
mycursor.execute("SHOW TABLES")
mycursor.execute("INSERT INTO customers (name, address) VALUES ('John', 'Highway 21')")
mydb.commit() # Use this command after insert or update
สำหรับคำสั่งเพิ่มเติม: https://www.w3schools.com/python/python_mysql_getstarted.asp
mysql-connector
เท่านั้น stackoverflow.com/questions/59405740/…
mydb.commit()
หลังจากใส่ค่าลงในตาราง
SQLAlchemy เป็นชุดเครื่องมือ Python SQL และ Object Relational Mapper ที่ช่วยให้นักพัฒนาแอพพลิเคชั่นมีพลังและความยืดหยุ่นอย่างเต็มที่ของ SQL SQLAlchemy ให้ชุดเต็มของรูปแบบการคงอยู่ในระดับองค์กรที่รู้จักกันดีออกแบบมาสำหรับการเข้าถึงฐานข้อมูลที่มีประสิทธิภาพและมีประสิทธิภาพสูงปรับให้เข้ากับภาษาโดเมนที่เรียบง่ายและ Pythonic
pip install sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session
engine = create_engine("mysql://<user_name>:<password>@<host_name>/<db_name>")
session_obj = sessionmaker(bind=engine)
session = scoped_session(session_obj)
# insert into database
session.execute("insert into person values(2, 'random_name')")
session.flush()
session.commit()
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session
Base = declarative_base()
engine = create_engine("mysql://<user_name>:<password>@<host_name>/<db_name>")
session_obj = sessionmaker(bind=engine)
session = scoped_session(session_obj)
# Bind the engine to the metadata of the Base class so that the
# declaratives can be accessed through a DBSession instance
Base.metadata.bind = engine
class Person(Base):
__tablename__ = 'person'
# Here we define columns for the table person
# Notice that each column is also a normal Python instance attribute.
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
# insert into database
person_obj = Person(id=12, name="name")
session.add(person_obj)
session.flush()
session.commit()
แม้จะมีคำตอบทั้งหมดข้างต้น แต่ในกรณีที่คุณไม่ต้องการเชื่อมต่อกับฐานข้อมูลเฉพาะล่วงหน้าตัวอย่างเช่นหากคุณต้องการสร้างฐานข้อมูลยังคง (!) คุณสามารถใช้connection.select_db(database)
ดังที่แสดงในตัวอย่างต่อไปนี้
import pymysql.cursors
connection = pymysql.connect(host='localhost',
user='mahdi',
password='mahdi',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
cursor.execute("CREATE DATABASE IF NOT EXISTS "+database)
connection.select_db(database)
sql_create = "CREATE TABLE IF NOT EXISTS "+tablename+(timestamp DATETIME NOT NULL PRIMARY KEY)"
cursor.execute(sql_create)
connection.commit()
cursor.close()
MySQLdbเป็นวิธีที่ตรงไปตรงมา คุณได้รับการดำเนินการแบบสอบถาม SQL ผ่านการเชื่อมต่อ ระยะเวลา
วิธีที่ฉันชอบซึ่งเป็น pythonic คือการใช้SQLAlchemyอันยิ่งใหญ่แทน นี่คือการสอนที่เกี่ยวข้องกับแบบสอบถามและนี่คือการสอนเกี่ยวกับความสามารถ ORMของ SQLALchemy
สำหรับ Python3.6 ฉันพบไดร์เวอร์สองตัว: pymysql และ mysqlclient ฉันทดสอบประสิทธิภาพระหว่างพวกเขาและได้ผลลัพธ์: mysqlclient เร็วขึ้น
ด้านล่างนี้เป็นขั้นตอนการทดสอบของฉัน (ต้องติดตั้งโปรไฟล์หลาม lib หลามเพื่อวิเคราะห์เวลาผ่านไป:
sql ดิบ: select * from FOO;
ดำเนินการทันทีใน terminal mysql:
46410 rows in set (0.10 sec)
pymysql (2.4s):
from profilehooks import profile
import pymysql.cursors
import pymysql
connection = pymysql.connect(host='localhost', user='root', db='foo')
c = connection.cursor()
@profile(immediate=True)
def read_by_pymysql():
c.execute("select * from FOO;")
res = c.fetchall()
read_by_pymysql()
mysqlclient (0.4s)
from profilehooks import profile
import MySQLdb
connection = MySQLdb.connect(host='localhost', user='root', db='foo')
c = connection.cursor()
@profile(immediate=True)
def read_by_mysqlclient():
c.execute("select * from FOO;")
res = c.fetchall()
read_by_mysqlclient()
ดังนั้นดูเหมือนว่า mysqlclient เร็วกว่า pymysql มาก
แม้ว่าบางท่านอาจทำเครื่องหมายว่าซ้ำกันและได้รับการไม่พอใจที่ผมคัดลอกของคนอื่นคำตอบผมจะจริงๆต้องการจะเน้นด้านของการตอบสนองนาย Napik ฯ เพราะฉันพลาดสิ่งนี้ทำให้เว็บไซต์ทั่วประเทศหยุดทำงาน (9 นาที) หากมีใครบางคนเปิดเผยข้อมูลนี้ฉันสามารถป้องกันได้!
นี่คือรหัสของเขา:
import mysql.connector
cnx = mysql.connector.connect(user='scott', password='tiger',
host='127.0.0.1',
database='employees')
try:
cursor = cnx.cursor()
cursor.execute("""select 3 from your_table""")
result = cursor.fetchall()
print(result)
finally:
cnx.close()
สิ่งสำคัญที่นี่คือมาตราลองและในที่สุด การทำเช่นนี้ช่วยให้การเชื่อมต่อกับALWAYSถูกปิดโดยไม่คำนึงถึงสิ่งที่เกิดขึ้นในส่วนของเคอร์เซอร์ / sqlstatement ของรหัส การเชื่อมต่อที่ใช้งานอยู่จำนวนมากทำให้ DBLoadNoCPU ขัดขวางและอาจทำให้เซิร์ฟเวอร์ db ล้มเหลว
ฉันหวังว่าคำเตือนนี้จะช่วยให้เซิร์ฟเวอร์และงานในท้ายที่สุด! : D
วิธีที่ดีที่สุดในการเชื่อมต่อกับ MySQL จาก python คือใช้ MySQL Connector / Python เพราะเป็นไดร์เวอร์ Oracle อย่างเป็นทางการสำหรับ MySQL สำหรับทำงานกับ Python และทำงานได้กับทั้ง Python 3 และ Python 2
ทำตามขั้นตอนด้านล่างเพื่อเชื่อมต่อกับ MySQL
ติดตั้งตัวเชื่อมต่อโดยใช้ pip
pip install mysql-connector-python
หรือคุณสามารถดาวน์โหลดตัวติดตั้งได้จากhttps://dev.mysql.com/downloads/connector/python/
ใช้connect()
วิธีการของตัวเชื่อมต่อ mysql python เพื่อเชื่อมต่อกับ MySQL.pass อาร์กิวเมนต์ที่ต้องการกับconnect()
วิธีการ เช่นชื่อโฮสต์ชื่อผู้ใช้รหัสผ่านและชื่อฐานข้อมูล
สร้างcursor
วัตถุจากวัตถุเชื่อมต่อส่งคืนโดยconnect()
วิธีการดำเนินการแบบสอบถาม SQL
ปิดการเชื่อมต่อหลังจากงานเสร็จสมบูรณ์
ตัวอย่าง :
import mysql.connector
from mysql.connector import Error
try:
conn = mysql.connector.connect(host='hostname',
database='db',
user='root',
password='passcode')
if conn.is_connected():
cursor = conn.cursor()
cursor.execute("select database();")
record = cursor.fetchall()
print ("You're connected to - ", record)
except Error as e :
print ("Print your error msg", e)
finally:
#closing database connection.
if(conn.is_connected()):
cursor.close()
conn.close()
การอ้างอิง - https://pynative.com/python-mysql-database-connection/
API ที่สำคัญของ MySQL Connector Python
สำหรับการดำเนินการ DML - ใช้cursor.execute()
และcursor.executemany()
เรียกใช้แบบสอบถาม และหลังจากการใช้นี้connection.commit()
เพื่อยืนยันการเปลี่ยนแปลงของคุณในฐานข้อมูล
ดึงข้อมูล - ใช้cursor.execute()
ในการเรียกใช้แบบสอบถามและcursor.fetchall()
, cursor.fetchone()
, cursor.fetchmany(SIZE)
ดึงข้อมูล
เพียงแก้ไขในคำตอบข้างต้น เพียงรันคำสั่งนี้เพื่อติดตั้ง mysql สำหรับ python
sudo yum install MySQL-python
sudo apt-get install MySQL-python
จำ! มันเป็นกรณีที่สำคัญ
mysqlclient นั้นดีที่สุดเพราะคนอื่น ๆ ให้การสนับสนุนกับไพ ธ อนเฉพาะรุ่นเท่านั้น
pip install mysqlclient
รหัสตัวอย่าง
import mysql.connector
import _mysql
db=_mysql.connect("127.0.0.1","root","umer","sys")
#db=_mysql.connect(host,user,password,db)
# Example of how to insert new values:
db.query("""INSERT INTO table1 VALUES ('01', 'myname')""")
db.store_result()
db.query("SELECT * FROM new1.table1 ;")
#new1 is scheme table1 is table mysql
res= db.store_result()
for i in range(res.num_rows()):
print(result.fetch_row())
mysql.connector
และ_mysql
ให้ทั้งข้อผิดพลาดในการนำเข้า (แม้ว่าตัวเลือกที่สองควรทำงานตามเอกสารประกอบ) import MySQLdb
ทำงานได้แล้วMySQLdb.connect...
ดูที่สตอร์มด้วย มันเป็นเครื่องมือการแมป SQL ที่เรียบง่ายซึ่งช่วยให้คุณสามารถแก้ไขและสร้างรายการ SQL โดยไม่ต้องเขียนแบบสอบถาม
นี่คือตัวอย่างง่ายๆ:
from storm.locals import *
# User will be the mapped object; you have to create the table before mapping it
class User(object):
__storm_table__ = "user" # table name
ID = Int(primary=True) #field ID
name= Unicode() # field name
database = create_database("mysql://root:password@localhost:3306/databaseName")
store = Store(database)
user = User()
user.name = u"Mark"
print str(user.ID) # None
store.add(user)
store.flush() # ID is AUTO_INCREMENT
print str(user.ID) # 1 (ID)
store.commit() # commit all changes to the database
วิธีค้นหาและใช้วัตถุ:
michael = store.find(User, User.name == u"Michael").one()
print str(user.ID) # 10
ค้นหาด้วยคีย์หลัก:
print store.get(User, 1).name #Mark
นี่คือการเชื่อมต่อฐานข้อมูล Mysql
from flask import Flask, render_template, request
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'root'
app.config['MYSQL_DB'] = 'MyDB'
mysql = MySQL(app)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == "POST":
details = request.form
cur = mysql.connection.cursor()
cur.execute ("_Your query_")
mysql.connection.commit()
cur.close()
return 'success'
return render_template('index.html')
if __name__ == '__main__':
app.run()
ก่อนติดตั้งไดรเวอร์
pip install MySQL-python
จากนั้นโค้ดพื้นฐานจะเป็นดังนี้:
#!/usr/bin/python
import MySQLdb
try:
db = MySQLdb.connect(host="localhost", # db server, can be a remote one
db="mydb" # database
user="mydb", # username
passwd="mydb123", # password for this username
)
# Create a Cursor object
cur = db.cursor()
# Create a query string. It can contain variables
query_string = "SELECT * FROM MY_TABLE"
# Execute the query
cur.execute(query_string)
# Get all the rows present the database
for each_row in cur.fetchall():
print each_row
# Close the connection
db.close()
except Exception, e:
print 'Error ', e
คุณสามารถเชื่อมต่อรหัสไพ ธ อนกับ mysql ได้ด้วยวิธีนี้
import MySQLdb
db = MySQLdb.connect(host="localhost",
user="appuser",
passwd="",
db="onco")
cursor = db.cursor()
ก่อนติดตั้งไดรเวอร์ (Ubuntu)
sudo apt-get install python-pip
sudo pip install -u pip
sudo apt-get install python-dev libmysqlclient-dev
sudo apt-get install MySQL-python
รหัสการเชื่อมต่อฐานข้อมูล MySQL
import MySQLdb
conn = MySQLdb.connect (host = "localhost",user = "root",passwd = "pass",db = "dbname")
cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
cursor.close ()
conn.close ()
สำหรับ python 3.3
CyMySQL https://github.com/nakagami/CyMySQL
ฉันมี pip ติดตั้งอยู่บน windows 7 ของฉันเพียงแค่ติดตั้ง pip cymysql
(คุณไม่ต้องการ cython) รวดเร็วและไม่เจ็บปวด
ก่อนอื่นให้ติดตั้งตัวเชื่อมต่อ python-mysql จากhttps://dev.mysql.com/downloads/connector/python/
บนคอนโซล Python ให้ป้อน:
pip install mysql-connector-python-rf
import mysql.connector