Thứ Sáu, 24 tháng 5, 2024

47. Chương trình tào lao Python MySQL

Chúng ta sẽ cùng nhau viết một chương trình Python MySQL theo phong cách...tào lao. Đó là cái gì "nhồi nhét" vào được thì chúng ta sẽ "nhồi nhét" vào.

Mục đích chúng ta thực hành những chương trình...truyền thống kiểu này là để quen tay, quen mắt và quen với việc xử lý tình huống những khi bị lỗi.

Chúng ta sẽ sử dụng PyCharm cho chương trình này. Chúng ta cần phải kiểm tra đã sẵn sàng cài đặt MySQL và MySQL Connector.

Bạn cần nhớ password đã nhập vào khi cài đặt MySQL.

Mở PyCharm lên, chúng ta đơn giản sử dụng những gì sẵn có,  nếu muốn các bạn có thể tạo một file .py mới, hoặc sử dụng luôn file Test1.py như chúng tôi đang làm. Dù sao thì cũng lỡ mang tiếng là...tào lao rồi!

Đầu tiên chúng ta cần tạo một database. Giả sử như khi bạn cài đặt MySQL bạn không tạo thêm user, khi đó user mặc định sẽ là "root"


import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password của bạn"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE DATABASE mydatabase")


Bấm Run để chạy chương trình

Chương trình tào lao Python MySQL


Vậy là chúng ta đã tạo thành công database có tên là mydatabase bằng Python.

Bây giờ, giả sử chúng ta táy máy bấm Run thêm một lần, hoặc giả sử sau đó khi viết thêm code và chúng ta cần bấm Run để kiểm tra có lỗi không thì ngay tức khắc chúng ta nhận thông báo lỗi.



Rõ ràng chúng ta cần một lệnh IF để kiểm tra, nếu chưa có database thì gọi lệnh Create Database, nếu đã có database thì sẽ bỏ qua.

Đáng tiếc là không có sẵn một hàm nào cho chúng ta biết có database hay không nên chúng ta phải "xào nấu" những thứ có sẵn.

Nguyên vật liệu để xào nấu:

Trước hết chúng ta có câu lệnh SHOW DATABASES trong MySQL. SHOW DATABASES sẽ liệt kê các database trên máy chủ MySQL. Tuy nhiên chúng ta sẽ "không thấy" gì cả, mọi thứ nằm im đó đợi chúng ta sử dụng mà thôi.

Đặc biệt lưu ý: Mặc dù "không thấy" gì nhưng câu lệnh đã chạy, "nguyên vật liệu" không thể để vung vãi được, chúng ta cần thu thập lại hết rồi xử lý sau.

Hàm fetchall() sẽ "thu thập" hết mọi nguyên vật liệu rơi vãi, là mọi thứ của kết quả truy vấn và trả về danh sách Tuple. Nếu không còn hàng nào nữa, nó sẽ trả về một danh sách trống.

Chúng ta sẽ xem xét kết quả "thu thập" nếu thấy "người quen" thì kêu lên "Có rồi, có database đây nè", nếu không thì kết luận "Không thấy!"

Đây là code, tạm thời chúng ta sẽ bỏ (sử dụng dấu comment #) lệnh tạo database


import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password của bạn"
)

mycursor = mydb.cursor()
# Kiem tra database co ton tai hay khong
mycursor.execute("SHOW DATABASES")
databases = mycursor.fetchall()

database_exists = False
for database in databases:
  if 'mydatabase' in database:
    database_exists = True
    break

if database_exists:
  print("Database Ton Tai")
else:
  print("Database Khong Ton Tai")


Bấm Run để chạy chương trình


 

Chương trình đã chạy đúng như ý định của chúng ta, bây giờ ta sẽ mở khóa (Xóa dấu #) cho lệnh Create Database và đặt nó vào phần Else.

Chúng ta cũng thêm lệnh đóng kết nối vào cuối chương trình. Đây là code.

 

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password của bạn"
)

mycursor = mydb.cursor()
# Kiem tra database co ton tai hay khong
mycursor.execute("SHOW DATABASES")
databases = mycursor.fetchall()

database_exists = False
for database in databases:
  if 'mydatabase' in database:
    database_exists = True
    break

if database_exists:
  print("Database Ton Tai")
else:
  print("Database Khong Ton Tai")
  mycursor.execute("CREATE DATABASE mydatabase")

mydb.close()

 

Chạy chương trình, mọi thứ hoàn hảo.


 


Phần tiếp theo


Phần trước


Không có nhận xét nào:

Đăng nhận xét