1283 Stimmen

Wie verbinde ich mich mit einer MySQL-Datenbank in Python?

Wie kann ich mit einem Python-Programm eine Verbindung zu einer MySQL-Datenbank herstellen?

50 Stimmen

Die meisten Antworten hier konzentrieren sich auf die Installation der MySQLdb-Bibliothek. Ich würde wirklich empfehlen, sich für den von MySQL/Oracle bereitgestellten MySQL Connector/Python zu entscheiden, der den Prozess viel einfacher macht: stackoverflow.com/questions/372885/

10 Stimmen

Das Problem bei der Verwendung von Oracle's Connector/Python ist, dass es subtile Bugs und andere Integrationsprobleme gibt. Er ist einfach zu installieren, aber für alle realen Anwendungsfälle, für die ich ihn ausprobiert habe, fast unmöglich zum Laufen zu bringen. Aus diesem Grund empfehle ich immer MySQLdb.

8 Stimmen

@Mr.Napik Ich benutze pymysql weil es sich um ein reines freies Python handelt, das nach dieser Vergleich .

4voto

Umer Punkte 1007

Mysqlclient ist der beste, da andere nur bestimmte Python-Versionen unterstützen

 pip install mysqlclient

Beispielcode

    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())

siehe https://github.com/PyMySQL/mysqlclient-python

1 Stimmen

+1 für den Vorschlag der schnellsten Lösung für Python 3. Wie auch immer, mysql.connector y _mysql ergeben beide einen Importfehler (obwohl die zweite Option laut Dokumentation funktionieren sollte). import MySQLdb arbeitet, und dann MySQLdb.connect...

3voto

michip96 Punkte 361

Werfen Sie auch einen Blick auf Sturm . Es ist ein einfaches SQL-Mapping-Tool, mit dem Sie SQL-Einträge leicht bearbeiten und erstellen können, ohne die Abfragen zu schreiben.

Hier ein einfaches Beispiel:

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

Zum Auffinden und Verwenden von Objekten:

michael = store.find(User, User.name == u"Michael").one()
print str(user.ID) # 10

Suche mit Primärschlüssel:

print store.get(User, 1).name #Mark

Weitere Informationen finden Sie in der Lehrgang .

2voto

PyMySQL 0.10.1 - Freigegeben: Sep 10, 2020, unterstützt auch Python3.

python3 -m pip install PyMySQL

Einfacher Code:

import pymysql

# Connect to the database
conn = pymysql.connect(host='127.0.0.1',user='root',passwd='root',db='fax')

# Create a Cursor object
cur = conn.cursor()

# Execute the query
cur.execute("SELECT * FROM fax.student")

# Read and print records
for row in cur.fetchall():
    print(row)

Ausgabe:

(1, 'Petar', 'Petrovic', 1813, 'Njegusi')
(2, 'Donald', 'Tramp', 1946, 'New York')
(3, 'Bill', 'Gates', 1955, 'Seattle')

1 Stimmen

Bravo dechko! :)

2voto

Aditya Punkte 1690

Dies ist die Mysql DB-Verbindung

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()

1voto

Code GUI Punkte 21

Erster Schritt zum Erhalt der Bibliothek: Öffnen Sie das Terminal und führen Sie pip install mysql-python-connector . Nach der Installation gehen Sie zum zweiten Schritt über.

Zweiter Schritt zum Importieren der Bibliothek: Öffnen Sie Ihre Python-Datei und schreiben Sie den folgenden Code: import mysql.connector

Dritter Schritt zur Verbindung mit dem Server: Schreiben Sie den folgenden Code:

conn = mysql.connector.connect(host= you host name like localhost or 127.0.0.1 , username= your username like root , Kennwort = your password )

Dritter Schritt Herstellung des Cursors: Die Erstellung eines Cursors erleichtert uns die Ausführung von Abfragen. Um den Cursor zu erstellen, verwenden Sie den folgenden Code: cursor = conn.cursor()

Ausführen von Abfragen: Zum Ausführen von Abfragen können Sie Folgendes tun: cursor.execute(query)

Wenn die Abfrage irgendetwas in der Tabelle ändert, müssen Sie den folgenden Code nach der Ausführung der Abfrage hinzufügen: conn.commit()

Abrufen von Werten aus einer Abfrage: Wenn Sie Werte aus einer Abfrage abrufen möchten, können Sie wie folgt vorgehen: cursor.excecute('SELECT * FROM tabellen_name ') for i in cursor: print(i) #Or for i in cursor.fetchall(): print(i)

Die Methode fetchall() gibt eine Liste mit vielen Tupeln zurück, die die von Ihnen angeforderten Werte enthalten, Zeile für Zeile.

Schließen der Verbindung: Um die Verbindung zu schließen, sollten Sie den folgenden Code verwenden: conn.close()

Behandlung der Ausnahme: Um Handel Ausnahme können Sie es tun Vai die folgende Methode: try: #Logic pass except mysql.connector.errors.Error: #Logic pass Um eine Datenbank zu verwenden: Wenn Sie z.B. ein System zur Erstellung von Konten haben, bei dem Sie die Daten in einer Datenbank namens blabla speichern, können Sie einfach einen Datenbankparameter zur connect()-Methode hinzufügen, wie

mysql.connector.connect(database = Datenbankname )

entfernen Sie keine anderen Informationen wie Host, Benutzername und Passwort.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X