Python cung cấp một số cách để kết nối với cơ sở dữ liệu MySQL và xử lý dữ liệu. Bài viết này mô tả ba phương pháp
Cơ sở dữ liệu MySQL và người dùng phải tồn tại trước khi bạn có thể sử dụng bất kỳ phương pháp nào sau đây. Để biết thông tin về cách quản lý cơ sở dữ liệu MySQL bằng cPanel, vui lòng xem bài viết này
Kết nối với MySQL bằng Python
Trước khi bạn có thể truy cập cơ sở dữ liệu MySQL bằng Python, bạn phải cài đặt một (hoặc nhiều) gói sau trong môi trường ảo
- mysqlclient. Gói này chứa mô-đun MySQLdb. Nó được viết bằng C và là một trong những gói Python được sử dụng phổ biến nhất cho MySQL
- mysql-connector-python. Gói này chứa mysql. mô-đun kết nối. Nó được viết hoàn toàn bằng Python
- PyMySQL. Gói này chứa mô-đun pymysql. Nó được viết hoàn toàn bằng Python
Cả ba gói này đều sử dụng API cơ sở dữ liệu SQL di động của Python. Điều này có nghĩa là nếu bạn chuyển từ mô-đun này sang mô-đun khác, bạn có thể sử dụng lại gần như toàn bộ mã hiện có của mình (mẫu mã bên dưới trình bày cách thực hiện việc này)
Thiết lập môi trường ảo Python và cài đặt gói MySQLĐể thiết lập môi trường ảo Python và cài đặt gói MySQL, hãy làm theo các bước sau
- Đăng nhập vào tài khoản của bạn bằng SSH
- Để tạo một môi trường ảo, gõ các lệnh sau. cd ~
virtualenv sqlenv
- Lệnh virtualenv tạo một môi trường ảo có tên là sqlenv và các lệnh tiếp theo trong thủ tục này giả định rằng môi trường có tên là sqlenv. Bạn có thể sử dụng bất kỳ tên môi trường nào bạn muốn, nhưng đảm bảo rằng bạn thay thế tất cả các lần xuất hiện của sqlenv bằng tên môi trường của riêng bạn
- Nếu bạn đang chạy phiên bản Python thay thế (ví dụ: bạn đã định cấu hình thủ công phiên bản Python mới hơn cho tài khoản của mình như được mô tả trong bài viết này), thì bạn có thể chỉ định phiên bản đó cho môi trường ảo. Ví dụ: để cài đặt phiên bản Python 3 do người dùng định cấu hình. 8 trong môi trường ảo, bạn có thể sử dụng lệnh sau. virtualenv -p /home/username/bin/python3.8 sqlenv
Để kích hoạt môi trường ảo, gõ lệnh sau
source sqlenv/bin/activateDấu nhắc lệnh hiện bắt đầu bằng (sqlenv) để cho biết bạn đang làm việc trong môi trường ảo Python. Tất cả các lệnh sau trong quy trình này giả định rằng bạn đang làm việc trong môi trường ảo. Nếu bạn đăng xuất khỏi phiên SSH của mình (hoặc hủy kích hoạt môi trường ảo bằng cách sử dụng lệnh hủy kích hoạt), hãy đảm bảo bạn kích hoạt lại môi trường ảo trước khi làm theo các bước bên dưới và chạy mã mẫu
Để cập nhật pip trong môi trường ảo, gõ lệnh sau
pip install -U pipNhập lệnh cho gói bạn muốn cài đặt
- Để cài đặt gói mysqlclient, hãy nhập lệnh sau. pip install mysqlclient
Để cài đặt gói mysql-connector-python, gõ lệnh sau
pip install mysql-connector-pythonĐể cài đặt gói pymysql, gõ lệnh sau
pip install pymysql
Sau khi bạn cài đặt gói MySQL trong môi trường ảo, bạn đã sẵn sàng làm việc với cơ sở dữ liệu thực tế. Mã Python mẫu sau đây trình bày cách thực hiện việc này, cũng như việc chuyển đổi giữa các triển khai gói SQL khác nhau dễ dàng như thế nào. Mã mẫu hoạt động với Python 2. 7 và Trăn 3. x
Trong mã của riêng bạn, hãy thay thế tên người dùng bằng tên người dùng cơ sở dữ liệu MySQL, mật khẩu bằng mật khẩu của người dùng cơ sở dữ liệu và dbname bằng tên cơ sở dữ liệu
#!/usr/bin/python from __future__ import print_function hostname = 'localhost' username = 'username' password = 'password' database = 'dbname' # Simple routine to run a query on a database and print the results: def doQuery( conn ) : cur = conn.cursor() cur.execute( "SELECT fname, lname FROM employee" ) for firstname, lastname in cur.fetchall() : print( firstname, lastname ) print( "Using mysqlclient (MySQLdb):" ) import MySQLdb myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using mysql.connector:" ) import mysql.connector myConnection = mysql.connector.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using pymysql:" ) import pymysql myConnection = pymysql.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close()Ví dụ này tạo một loạt các đối tượng Kết nối mở cùng một cơ sở dữ liệu bằng các mô-đun MySQL khác nhau. Vì cả ba mô-đun MySQL đều sử dụng giao diện API cơ sở dữ liệu SQL di động nên chúng có thể sử dụng mã trong hàm doQuery() mà không cần sửa đổi gì
Khi bạn có một đối tượng Kết nối được liên kết với cơ sở dữ liệu, bạn có thể tạo một đối tượng Con trỏ. Đối tượng Cursor cho phép bạn chạy phương thức exec(), từ đó cho phép bạn chạy các câu lệnh SQL thô (trong trường hợp này là một truy vấn CHỌN trên một bảng có tên là employee)
Như bạn có thể thấy, API cơ sở dữ liệu SQL di động của Python giúp dễ dàng chuyển đổi giữa các mô-đun MySQL trong mã của bạn. Trong mẫu ở trên, các thay đổi mã duy nhất cần thiết để sử dụng một mô-đun khác là đối với các câu lệnh nhập và kết nối