Heim >Backend-Entwicklung >Python-Tutorial >Beispielcode, wie Python die MySQL-Datenbank verwendet

Beispielcode, wie Python die MySQL-Datenbank verwendet

黄舟
黄舟Original
2017-05-21 13:31:481402Durchsuche

In diesem Artikel wird hauptsächlich der Beispielcode für die Verwendung von MySQL-Datenbank mit Python vorgestellt. Der Herausgeber findet ihn ziemlich gut, daher werde ich ihn jetzt mit Ihnen teilen und ihn als Referenz. Folgen wir dem Editor, um einen Blick darauf zu werfen.

1 MySQL ist sehr einfach. Laden Sie die Installationsdatei direkt herunter und doppelklicken Sie auf die Installationsdatei, um Schritt für Schritt fortzufahren.
Die Installation unter Linux

ist möglicherweise einfacher. Zusätzlich zum Herunterladen des Installationspakets befindet sich MySQL im allgemeinen Linux-Warehouse Ein Befehl. Installation:


Ubuntudeepin

centOS/redhat

Zweitens: Installieren Sie MySQL-Python
 >>sudo apt-get install mysql-server 
 >>Sudo apt-get install mysql-client

>>yum install mysql
Damit Python MySQL betreiben kann, benötigen Sie den MySQL-Python

Treiber, der ein wesentliches Modul für Python ist, um MySQL zu betreiben.

Laden Sie die MySQL-python-1.2.5.

zip-Datei herunter und entpacken Sie sie direkt. Geben Sie das Verzeichnis MySQL-python-1.2.5 ein:

3. Test

>>python setup.py install
Der Test ist sehr einfach. Überprüfen Sie, ob das MySQLdb-Modul dies kann normal importiert werden.

Es gibt keine Fehlermeldung, die darauf hinweist, dass das MySQLdb-Modul nicht gefunden werden kann, was darauf hinweist, dass die Installation in Ordnung ist. Bevor wir mit der Verwendung von Python zum Betreiben der Datenbank beginnen, müssen wir die grundlegenden Vorgänge von MySQL überprüfen:

Vier Grundoperationen von MySQL
fnngj@fnngj-H24X:~/pyse$ python 
Python 2.7.4 (default, Sep 26 2013, 03:20:56) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb


Fünf Grundoperationen der MySQL-Datenbank in Python

$ mysql -u root -p (有密码时)
 
$ mysql -u root   (无密码时)
mysql> show databases; // 查看当前所有的数据库
+--------------------+
| Database      |
+--------------------+
| information_schema |
| csvt        |
| csvt04       |
| mysql       |
| performance_schema |
| test        |
+--------------------+
6 rows in set (0.18 sec)

mysql> use test;  //作用与test数据库
Database changed
mysql> show tables;  //查看test库下面的表
Empty set (0.00 sec)

//创建user表,name 和password 两个字段
mysql> CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); Query OK, 0 rows affected (0.27 sec)

//向user表内插入若干条数据
mysql> insert into user values('Tom','1321');
Query OK, 1 row affected (0.05 sec)

mysql> insert into user values('Alen','7875');
Query OK, 1 row affected (0.08 sec)

mysql> insert into user values('Jack','7455');
Query OK, 1 row affected (0.04 sec)

//查看user表的数据
mysql> select * from user;
+------+----------+
| name | password |
+------+----------+
| Tom | 1321   |
| Alen | 7875   |
| Jack | 7455   |
+------+----------+
3 rows in set (0.01 sec)

//删除name 等于Jack的数据
mysql> delete from user where name = 'Jack';
Query OK, 1 rows affected (0.06 sec)

//修改name等于Alen 的password 为 1111
mysql> update user set password='1111' where name = 'Alen';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0

//查看表内容
mysql> select * from user;
+--------+----------+
| name  | password |
+--------+----------+
| Tom  | 1321   |
| Alen  | 1111   |
+--------+----------+
3 rows in set (0.00 sec)
Connect()-Methode Wird verwendet, um

eine Verbindung zur Datenbank herzustellen , in der Parameter angegeben werden können: Benutzername, Passwort, Host und andere Informationen.

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
    host='localhost',
    port = 3306,
    user='root',
    passwd='123456',
    db ='test',
    )
cur = conn.cursor()

#创建数据表
#cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

#插入一条数据
#cur.execute("insert into student values('2','Tom','3 year 2 class','9')")


#修改查询条件的数据
#cur.execute("update student set class='3 year 1 class' where name = 'Tom'")

#删除查询条件的数据
#cur.execute("delete from student where age='9'")

cur.close()
conn.commit()
conn.close() 


>>> conn = MySQLdb.connect(host='localhost',port = 3306,user='root', passwd='123456',db ='test',)
Dies ist nur mit der Datenbank verbunden. Um die Datenbank zu bedienen, müssen Sie einen Cursor erstellen.

Erstellen Sie einen Cursor über die Cursor()-Methode unter der erhaltenen Datenbankverbindungsverbindung.

Code kopieren

Der Code lautet wie folgt:
>>> cur = conn.cursor()

Reine SQL-Anweisungen können über die Cursor-Cur-Operation-Execute()-Methode geschrieben werden. Verarbeiten Sie Daten, indem Sie SQL-Anweisungen in die Methodeexecute() schreiben.

cur.close() schließt den Cursor

>>> cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

conn.commit()-Methode sendet Dinge und muss diese Methode haben, wenn ein Datenelement in die Datenbank eingefügt wird. andernfalls werden die Daten nicht tatsächlich eingefügt.

>>>cur.close()

Conn.close() schließt die Datenbankverbindung

>>>conn.commit()

Sechs,

Daten einfügen
>>>conn.close()

Durch Das Obige Es ist nicht praktisch, reine SQL-Anweisungen in die Methodeexecute () zu schreiben, um Daten einzufügen. Zum Beispiel: Wenn ich neue Daten einfügen möchte, muss ich den Wert in dieser Anweisung ändern. Wir können die folgenden Änderungen vornehmen:

Was ist, wenn wir mehrere Werte gleichzeitig in die Datentabelle einfügen möchten?

>>>cur.execute("insert into student values('2','Tom','3 year 2 class','9')")

Die Methodeexecutemany() kann mehrere Werte gleichzeitig einfügen und einzelne SQL-Anweisungen ausführen, aber die Parameter in der Parameterliste werden wiederholt ausgeführt und der Rückgabewert ist die Zahl der betroffenen Zeilen.
#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
    host='localhost',
    port = 3306,
    user='root',
    passwd='123456',
    db ='test',
    )
cur = conn.cursor()

#插入一条数据
sqli="insert into student values(%s,%s,%s,%s)"
cur.execute(sqli,('3','Huhu','2 year 1 class','7'))

cur.close()
conn.commit()
conn.close()


7. Daten abfragen
#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
    host='localhost',
    port = 3306,
    user='root',
    passwd='123456',
    db ='test',
    )
cur = conn.cursor()

#一次插入多条记录
sqli="insert into student values(%s,%s,%s,%s)"
cur.executemany(sqli,[
  ('3','Tom','1 year 1 class','6'),
  ('3','Jack','2 year 1 class','7'),
  ('3','Yaheng','2 year 2 class','7'),
  ])

cur.close()
conn.commit()
conn.close()


Vielleicht haben Sie versucht, die Datentabelle in Python über

Daten abzufragen in der Tabelle, aber die Daten in der Tabelle wurden nicht ausgedruckt, was etwas enttäuschend war.

Mal sehen, was diese Aussage ergibt

>>>cur.execute("select * from student")

Was sie ergibt, ist, wie viele Daten sich in unserer Tabelle befinden. Wie können wir also die Daten in der Tabelle erhalten? Das Aufrufen der Python-Shell

fetchone()-Methode kann uns helfen, die Daten in der Tabelle zu erhalten, aber die erhaltenen Daten sind jedes Mal anders, wenn cur.fetchone() ausgeführt wird. Mit anderen Worten, ich habe es nicht getan Führen Sie es einmal aus und der Cursor bewegt sich vom ersten Datenelement in der Tabelle zur Position des nächsten Datenelements. Wenn ich es also erneut ausführe, erhalte ich das zweite Datenelement.

>>>aa=cur.execute("select * from student")
 
>>>print aa

5

scroll(0,'absolute')-Methode kann den Cursor auf die ersten Daten in der Tabelle positionieren.

>>> import MySQLdb
>>> conn = MySQLdb.connect(host='localhost',port = 3306,user='root',  passwd='123456',db ='test',)
>>> cur = conn.cursor()
>>> cur.execute("select * from student")
5L
>>> cur.fetchone()
(1L, 'Alen', '1 year 2 class', '6')
>>> cur.fetchone()
(3L, 'Huhu', '2 year 1 class', '7')
>>> cur.fetchone()
(3L, 'Tom', '1 year 1 class', '6')
...
>>>cur.scroll(0,'absolute')

Wir erhalten immer noch nicht die gewünschten Ergebnisse. Wie bekomme ich mehrere Daten in die Tabelle und drucke sie aus?

Durch den vorherigen Druck aa wissen wir, dass die aktuelle Tabelle 5 Datenelemente enthält. Die fetchmany()-Methode kann mehrere Datenelemente abrufen, die Anzahl der Datenelemente muss jedoch festgelegt werden durch eine
for-Schleife angegeben werden

Sie können mehrere Daten ausdrucken! Die Ausführungsergebnisse lauten wie folgt:

Das obige ist der detaillierte Inhalt vonBeispielcode, wie Python die MySQL-Datenbank verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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