1. Trang chủ
  2. » Thể loại khác

truy cap database trong python

9 192 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Truy cập MySQL Database trong Python

    • MySQLdb là gì?

    • Cách cài đặt MySQLdb?

    • Kết nối Database trong Python

    • Tạo bảng dữ liệu trong Python

    • Hoạt động INSERT trong Python

      • Ví dụ

    • Hoạt động đọc trong Python

    • Hoạt động Update trong Python

      • Ví dụ

    • Hoạt động DELETE trong Python

      • Ví dụ

    • Ngắt kết nối tới Database trong Python

Nội dung

http://vietjack.com/python/index.jsp Copyright © vietjack.com Truy cập MySQL Database Python Chương giới thiệu khái quát cho bạn cách truy cập Database sử dụng Python giới thiệu qua số hoạt động Database INSERT, UPDATE, DELETE Trước theo dõi thực hành chương này, bạn cần phải tải DB API Module riêng cho Database bạn cần truy cập DB API cung cấp chuẩn tối thiểu để làm việc với Database sử dụng Python Trong chương này, sử dụng MySQL, trước hết tìm hiểu qua MySQLdb Module MySQLdb gì? MySQLdb Interface để kết nối tới MySQL Database Server từ Python Nó triển khai Python Database API 2.0 xây dựng MySQL C API Cách cài đặt MySQLdb? Trước tiến hành, bạn cần cài đặt MySQL thiết bị bạn Sau gõ dòng Python script sau thực thi nó: import MySQLdb Nếu cho kết sau, nghĩa MySQLdb Module khơng cài đặt: Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb Để cài đặt MySQLdb Module, tải từ MySQLdb Download tiến hành sau: $ gunzip MySQL-python-1.2.2.tar.gz $ tar -xvf MySQL-python-1.2.2.tar $ cd MySQL-python-1.2.2 $ python setup.py build $ python setup.py install http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com Kết nối Database Python Trước kết nối với MySQL Database, đảm bảo:  Bạn tạo Database có tên TESTDB  Bạn tạo bảng SINHVIEN TESTDB  Bảng có trường HO, TEN, TUOI, GIOITINH HOCPHI  User ID testuser password test123 thiết lập để truy cập TESTDB  MySQLdb Module cài đặt phù hợp thiết bị bạn  Bạn hiểu MySQL, chưa, bạn tham khảo Bài hướng dẫn MySQL Dưới ví dụ kết nối với TESTDB import MySQLdb # mo ket noi toi Database db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # chuan bi mot doi tuong cursor boi su dung phuong thuc cursor() cursor = db.cursor() # Thuc thi truy van SQL boi su dung phuong thuc execute() cursor.execute("SELECT VERSION()") # Lay mot hang boi su dung phuong thuc fetchone() data = cursor.fetchone() print "Database version : %s " % data # ngat ket noi voi server http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com db.close() Khi chạy script này, cho kết sau thiết bị Linux Database version : 5.0.45 Nếu kết nối thành lập, đối tượng Connection trả lưu giữ vào db, khơng db thiết lập None Tiếp đó, đối tượng db sử dụng để tạo đối tượng cursor, mà tiếp sử dụng để thực thi truy vấn SQL Cuối cùng, trước ra, bảo đảm kết nối tới Database đóng resource giải phóng Tạo bảng liệu Python Khi kết nối tới Database thành lập, tạo bảng ghi vào bảng sử dụng phương thức execute đối tượng cursor tạo Bạn theo dõi ví dụ để tạo bảng SINHVIEN: import MySQLdb # mo ket noi toi Database db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # chuan bi mot doi tuong cursor boi su dung phuong thuc cursor() cursor = db.cursor() # Xoa bang neu no da ton tai boi su dung phuong thuc execute() cursor.execute("DROP TABLE IF EXISTS SINHVIEN") # Tao mot bang sql = """CREATE TABLE SINHVIEN ( HO TEN CHAR(20) NOT NULL, CHAR(20), TUOI INT, GIOITINH CHAR(1), http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com HOCPHI FLOAT )""" cursor.execute(sql) # ngat ket noi voi server db.close() Hoạt động INSERT Python Đây hoạt động bắt buộc bạn muốn tạo ghi vào bảng tạo Ví dụ sau thực thi lệnh SQL INSERT để tạo ghi vào bảng SINHVIEN import MySQLdb # mo ket noi toi Database db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # chuan bi mot doi tuong cursor boi su dung phuong thuc cursor() cursor = db.cursor() # Truy van SQL de INSERT mot ban ghi vao database sql = """INSERT INTO SINHVIEN(HO, TEN, TUOI, GIOITINH, HOCPHI) VALUES ('Nguyen', 'Hoang', 20, 'M', 4000000)""" try: # Thuc thi lenh SQL cursor.execute(sql) # Commit cac thay doi vao Database db.commit() except: # Rollback tinh huong co bat ky error nao db.rollback() http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com # ngat ket noi voi server db.close() Ví dụ viết sau để tạo truy vấn SQL hay hơn: import MySQLdb # mo ket noi toi Database db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # chuan bi mot doi tuong cursor boi su dung phuong thuc cursor() cursor = db.cursor() # Truy van SQL de INSERT mot ban ghi vao database sql = "INSERT INTO SINHVIEN(HO, \ TEN, TUOI, GIOITINH, HOCPHI) \ VALUES ('%s', '%s', '%d', '%c', '%d' )" % \ ('Nguyen', 'Hoang', 20, 'M', 4000000) try: # Thuc thi lenh SQL cursor.execute(sql) # Commit cac thay doi vao Database db.commit() except: # Rollback tinh huong co bat ky error nao db.rollback() # ngat ket noi voi server db.close() http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com Ví dụ Đoạn code sau form thực thi khác, bạn truyền tham số cách trực tiếp user_id = "test123" password = "password" con.execute('chen cac gia tri de dang nhap ("%s", "%s")' % \ (user_id, password)) Hoạt động đọc Python Hoạt động đọc Database nghĩa lấy số thơng tin hữu ích từ Database Khi kết nối với Databse thiết lập, bạn tạo truy vấn vào Database Bạn sử dụng phương thức fetchone() để lấy ghi đơn phương thứcfetchall() để lấy nhiều giá trị từ bảng  Hàm fetchone() lấy hàng tập kết truy vấn Một tập kết đối tượng trả đối tượng cursor sử dụng để truy vấn bảng  Hàm fetchall() lấy tất hàng tập kết Nếu số hàng sẵn sàng trích từ tập kết đó, thu nhận hàng lại từ tập kết  Thuộc tính rowcount thuộc tính read-only trả số bị ảnh hưởng phương thức execute() Ví dụ sau truy vấn tất ghi từ bảng SINHVIEN mà có salary lớn 1000: import MySQLdb # mo ket noi toi Database db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # chuan bi mot doi tuong cursor boi su dung phuong thuc cursor() http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com cursor = db.cursor() # Chuan bi truy van SQl de INSERT mot ban ghi vao database sql = "SELECT * FROM SINHVIEN \ WHERE HOCPHI > '%d'" % (1000) try: # Thuc thi lenh SQL cursor.execute(sql) # Lay tat ca cac hang list results = cursor.fetchall() for row in results: ho = row[0] ten = row[1] tuoi = row[2] gioitinh = row[3] hocphi = row[4] # Bay gio in ket qua print "ho=%s,ten=%s,tuoi=%d,gioitinh=%s,hocphi=%d" % \ (ho, ten, tuoi, gioitinh, hocphi ) except: print "Error: khong lay duoc du lieu" # ngat ket noi voi server db.close() Kết là: ho=Nguyen, ten=Hoang, tuoi=20, gioitinh=M, hocphi=4000000 Hoạt động Update Python Hoạt động UPDATE Database nghĩa để cập nhật nhiều ghi mà có sẵn Database Thủ tục sau cập nhật tất ghi có GIOITINH M Ở đây, tăng tất TUOI male thêm năm http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com Ví dụ import MySQLdb # mo ket noi toi Database db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # chuan bi mot doi tuong cursor boi su dung phuong thuc cursor() cursor = db.cursor() # Truy van SQL de UPDATE cac ban ghi sql = "UPDATE SINHVIEN SET TUOI = TUOI + WHERE GIOITINH = '%c'" % ('M') try: # Thuc thi lenh SQL cursor.execute(sql) # Commit cac thay doi vao Database db.commit() except: # Rollback tinh huong co bat ky error nao db.rollback() # ngat ket noi voi server db.close() Hoạt động DELETE Python Hoạt động DELETE cần thiết bạn muốn xóa số ghi từ Database Dưới thủ tục để xóa tất ghi từ bảng SINHVIEN với điều kiện TUOI lớn 20: Ví dụ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com import MySQLdb # mo ket noi toi Database db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # chuan bi mot doi tuong cursor boi su dung phuong thuc cursor() cursor = db.cursor() # Chuan bi truy van SQL de DELETE cac ban ghi can thiet sql = "DELETE FROM SINHVIEN WHERE TUOI > '%d'" % (20) try: # Thuc thi lenh SQL cursor.execute(sql) # Commit cac thay doi vao Database db.commit() except: # Rollback tinh huong co bat ky error nao db.rollback() # ngat ket noi voi server db.close() Ngắt kết nối tới Database Python Để ngắt kết nối tới Database, bạn sử dụng phương thức close(), có cú pháp sau: db.close() http://vietjack.com/ Trang chia sẻ học online miễn phí Page ...http://vietjack.com /python/ index.jsp Copyright © vietjack.com Kết nối Database Python Trước kết nối với MySQL Database, đảm bảo:  Bạn tạo Database có tên TESTDB  Bạn tạo bảng... (user_id, password)) Hoạt động đọc Python Hoạt động đọc Database nghĩa lấy số thơng tin hữu ích từ Database Khi kết nối với Databse thiết lập, bạn tạo truy vấn vào Database Bạn sử dụng phương thức... cursor, mà tiếp sử dụng để thực thi truy vấn SQL Cuối cùng, trước ra, bảo đảm kết nối tới Database đóng resource giải phóng Tạo bảng liệu Python Khi kết nối tới Database thành lập, tạo bảng ghi

Ngày đăng: 02/12/2017, 12:29

TỪ KHÓA LIÊN QUAN

w