Heim  >  Artikel  >  Backend-Entwicklung  >  Python Verwenden von MYSQL in Python

Python Verwenden von MYSQL in Python

巴扎黑
巴扎黑Original
2016-12-07 10:19:331094Durchsuche

Grund

Kürzlich habe ich an einem kleinen Tool gearbeitet, das Online-Seiten crawlen muss. Dann analysieren. Geben Sie die Ergebnisse in die Datenbank ein.

Da ich wusste, dass Python in diesem Bereich Vorteile hat, habe ich mich dafür entschieden.

Da ich MySQL auf einem Server installiert habe, verwende ich es natürlich. Beim Betrieb der Datenbank bin ich auf viele Probleme gestoßen. Zur gegenseitigen Ermutigung werde ich diese hier aufzeichnen.

Aufruf von MySQL in Python

Baidu kann Datenbankoperationen über MySQLdb ausführen. Sehen Sie sich die Dokumentation an und erfahren Sie, dass Python ein MySQL bereitstellt, das die C-Sprach-API von MySQL direkt implementiert. MySQLdb ist eine Kapselung auf höherer Ebene und daher bequemer zu verwenden. Wir können MySQL verwenden, aber eine bessere Möglichkeit ist die Verwendung von MySQLdb

Während der Installation aufgetretene Probleme

Sie können es von dieser Seite herunterladen http://sourceforge.net/projects/mysql-python/ Bei der neuesten Version von MySQLdb kann es beim Ausführen der Installation nach der Dekomprimierung zu Problemen kommen.

Beim Ausführen der Installation über python setup.py build wird angezeigt, dass kein Modul namens „setuptools“ vorhanden ist.

Lösung: Installieren Sie es

sudo apt-get install python-setuptools

Führen Sie es erneut aus. Möglicherweise erhalten Sie immer noch die Fehlermeldung „mysql_config nicht gefunden“

Zu diesem Zeitpunkt müssen wir „mysqld-dev“ installieren

sudo apt-get install libmysqld-dev

Es kann immer noch passieren, wenn Sie es erneut ausführen. Es ist ein Fehler aufgetreten. Etwas in der Art: „

‚MySQL‘-Erweiterung erstellen gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3, ' final',0) -Dversion=1.2.3 -I/usr/include/mysql -I/usr/include/python2.7 -c mysql.c -o build/temp.linux-i686-2.7/mysql.o - DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX In Datei enthalten von mysql.c:29:0: pymemcompat.h:10:20: Schwerwiegender Fehler: Python.h: Keine solche Datei oder kein solches Verzeichnis

Lösung

sudo apt-get install python-dev

In diesem Schritt werden einige Entwicklungs-Header-Dateien für Python installiert.

Grundsätzlich treten nach den ersten drei Methoden keine weiteren Probleme mehr auf.

Aber gehen Sie davon aus, dass MySQL von Ihnen selbst installiert wird. Darüber hinaus wird ein Fehler gemeldet, wenn die lib-Datei nicht unter /usr/local/lib platziert wird.

Die Lösung besteht darin, die Datei mit diesem Ordner zu verknüpfen oder die Datei /etc/ld.so.cnf des Systems zu ändern und den Ordner abzulegen, in dem sich unsere Bibliothek befindet. Beide Methoden funktionieren. Lassen Sie es dann in ldconfig einfach wirksam werden.

Zum Beispiel verwenden wir die erste Methode ln -s /usr/local/mysql/lib/mysql/libmysqlclient* /usr/lib

Tatsächliche Verwendung

Einführung in die MySQLdb-Bibliothek

MySQLdb importieren

Mit Datenbank verbinden

conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db ="mytable ",charset="utf8")

Die bereitgestellte Verbindungsmethode wird verwendet, um eine Verbindung mit der Datenbank herzustellen, empfängt mehrere Parameter und gibt das Verbindungsobjekt zurück

Führen Sie die Anweisung aus und erhalten Sie das Ergebnis

Cursor=conn.cursor() n=cursor.execute(sql,param)

Zuerst verwenden wir das Verbindungsobjekt, um ein Cursorobjekt zu erhalten Verwenden Sie die vom Cursor bereitgestellten Methoden. Diese Methoden umfassen zwei Hauptkategorien: 1. Ausführen des Befehls, 2. Empfangen des Rückgabewerts

Wird später ausführlich besprochen. Hier unbekannt

Das Ende. Um eine Datenbankverbindung

zu schließen, müssen Sie das Zeigerobjekt und das Verbindungsobjekt separat schließen. Sie haben Methoden mit demselben Namen

cursor.close()

conn .close()

Häufig verwendete Operations-API

Unterstützung für Transaktionsoperationen, Standardmethoden commit() commit

rollback() rollback

Methode, die von verwendet wird Cursor zum Ausführen von Befehlen:

callproc(self, procname, args): Wird zum Ausführen der gespeicherten Prozedur verwendet. Die empfangenen Parameter sind der Name der gespeicherten Prozedur und die Parameterliste, und der Rückgabewert ist die Anzahl der betroffenen Zeilen

execute( self, query, args): Führen Sie eine einzelne SQL-Anweisung aus. Die empfangenen Parameter sind die SQL-Anweisung selbst und die verwendete Parameterliste. Der Rückgabewert ist die Anzahl der betroffenen Zeilen

executemany (self, query, args): Führen Sie die einzelne SQL-Anweisung aus, aber führen Sie die Parameter in der Parameterliste wiederholt aus. Der Rückgabewert ist die Anzahl der betroffenen Zeilen. nextset(self): Zum nächsten Ergebnissatz wechseln

Vom Cursor verwendete Methode zum Empfangen des Rückgabewerts:

fetchall(self): Empfangen aller zurückgegebenen Ergebniszeilen

fetchmany(self, size=None): Empfangen der zurückgegebenen Ergebniszeilen dass der Wert von size größer ist als die zurückgegebenen Ergebniszeilen.

fetchone(self): Gibt eine Ergebniszeile

zurück. value, mode='relative': Bewegen Sie den Zeiger auf eine bestimmte Zeile. Wenn mode='relative', bedeutet dies, dass der Wertbalken von der aktuellen Zeile verschoben wird. Wenn mode='absolute', bedeutet dies, dass der Wertbalken von der aktuellen Zeile verschoben wird erste Zeile der Ergebnismenge.

Fügen Sie am Ende einen Satz ein: 🎜>

Der Computer wurde auf Ubuntu 14.04 aktualisiert und erneut installiert. Das vorherige Blog-Repository war verschwunden und ich habe es von Github zurückgezogen wieder. Etwas ist schief gelaufen. Ich habe die Datei gelöscht und dieser Artikel war fast verschwunden. Es ist einfach gut, dass ich diesen Artikel jetzt lesen kann.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn