Cara menggunakan pymysql

Seperti yang kita ketahui, Python adalah bahasa pemrograman yang mendukung hampir semua platform seperti desktop, web dan yang terbaru adalah mobile android dengan kivy, selain itu sebagian besar penggunaan python sebagai dasar scripting untuk berbagai aplikasi.

Tentu saja, sebagai bahasa scripting, python juga mendukung koneksi dengan database, misalnya python secara default mendukung penggunaan SQLite, dan tentu saja juga mendukung database lain seperti database postgresql, mysql, atau nosql seperti mongoDB dll.

Pada tutorial kali ini saya ingin menjelaskan sedikit tentang cara menghubungkan Python dengan Database Mysql

Persiapan lingkungan

Untuk menggunakan Mysql di Python tentunya kita harus install mysql server, misalnya bisa menggunakan xampp/lampp atau mysql server yang bisa di download disini. Dalam tutorial ini, saya menggunakan Lampp sebagai server mysql. Saya berasumsi bahwa Anda telah menginstal mysql-server di laptop Anda masing-masing

Setelah itu, kita bisa menyiapkan driver mysql sebagai penghubung antara python dan mysql-server. Ada banyak jenis driver untuk mysql, seperti Mysql-Connector, PyMysql, atau MysqlClient. Pada tutorial kali ini saya sarankan untuk menggunakan mysqlclient, karena dua yang sebelumnya memiliki kekurangan seperti performa dan jarang update (saya tidak akan membahas ini XD)

Instal MysqlClient

Sebelum memulai, untuk pengguna linux berbasis debian, pengguna ubuntu atau macOS, harus menginstal pengembangan header python dan mysql dengan cara berikut

sudo apt-get install python3-dev libmysqlclient-dev

atau di MacOS

brew install mysql-connector-c
_

setelah menginstal header pengembangan, lanjutkan dengan menginstal mysqlclient melalui pip

pip install mysqlclient

Catatan Untuk pengguna Windows, jika mengalami error, Anda dapat mencoba beberapa metode berikut

  • Instal visual c++ (biasanya terjadi jika Anda belum menginstal visual c++2010 atau mengikuti persyaratan pada pesan kesalahan)
  • Install menggunakan file whl yang bisa didownload
  • downgrade versi mysqlclient dengan

pip install mysqlclient==1.3.9
atau
pip install mysqlclient==1.3.4

Tentu saja, secara umum, python dapat menggunakan berbagai metode untuk memanggil perpustakaan, dengan metode langsung, fungsi, atau model orientasi objek

Pada bagian ini, saya akan menunjukkan 2 cara, menggunakan metode langsung dan metode OOP

Membuat Basis Data

Untuk metode pertama, kami menggunakan metode koneksi langsung. Sebelumnya kita harus membuat database dulu yaaaa XD, oke mari kita ketikkan script berikut ini


CREATE TABLE `product` (
  `id` int(45) NOT NULL,
  `name` varchar(45) NOT NULL,
  `price` int(11) NOT NULL,
  `stock` int(11) NOT NULL,
 PRIMARY KEY (`id`));
_

lalu isikan datanya menggunakan script berikut,

INSERT INTO `product` (`id`, `name`, `price`, `stock`) VALUES
(1, 'Sabun Mandi Lux', 3500, 10),
(2, 'Marlboro Black Filter', 20700, 12),
(3, 'Sabun cuci Muka', 15000, 100);

Pilih Koneksi Langsung

Setelah data dimasukkan ke dalam database, langkah selanjutnya adalah melakukan query dengan menggunakan python. Pada contoh ini saya menggunakan metode direct connection yang artinya bagaimana menghubungkannya secara langsung tanpa menggunakan class

oke ini contohnya

import MySQLdb as db

connection = db.connect('127.0.0.1', 'root', '', 'pos')

cursor = connection.cursor()

query = "SELECT * from product"

cursor.execute(query)
result = cursor.fetchall()
for items in result:
    print(items)
_

pertama kita harus memanggil MysqlDB menggunakan sintaks impor. lalu kita sambungkan ke database dan simpan di variabel koneksi

Setelah itu kita tentukan kursor pada object connection dan simpan dengan nama yang sama, yaitu kursor dimana kursor ini akan digunakan untuk mengeksekusi query

ketika query dieksekusi oleh kursor, maka kita dapat menampilkannya dalam beberapa cara, fetchall yang mengambil semua baris dalam database, kemudian ada yang mengambil data paling atas

dan hasil dari kode diatas adalah sebagai berikut

Cara menggunakan pymysql

Koneksi Langsung INSERT dan DELETE

Seperti kebanyakan koneksi dengan database, tentunya ada yang namanya CRUD atau CREATE, READ, UPDATE Delete, maka kali ini kita akan mencoba insert dan delete database

Berikut adalah contoh insert database;

import MySQLdb as db

connection = db.connect('127.0.0.1', 'root', '', 'pos')

cursor = connection.cursor()
cursor.execute("INSERT INTO `product` VALUES (%s, %s, %s, %s)",
               ('', 'Chiki', '5000', '50',))
connection.commit()

pada insert database, kita menggunakan sintaks dasar mysql yaitu insert, yang diikuti string lateral dengan metode bind parameter, yaitu kita membuat parameter menggunakan list, bukan lewat string, karena ini akan mudah di SQL Injection

misalnya menghapus

import MySQLdb as db

connection = db.connect('127.0.0.1', 'root', '', 'pos')
cursor.execute("DELETE FROM `product` WHERE `product`.`id` = 12")
connection.commit()
_

PEMBARUAN Koneksi Langsung

selanjutnya update data di database,

import MySQLdb as db

connection = db.connect('127.0.0.1', 'root', '', 'pos')
cursor.execute("UPDATE product SET name= (% s), price= (%s), stock= (%s)"
               "Where id= ( % s)",
               ("Permen", "500", "10", "1"))
connection.commit()
_

Sama seperti sebelumnya, kita manfaatkan parameter bind, dengan membuat konten menjadi form list sebagai salah satu upaya menghindari sql injection,

Kelas Koneksi

Metode selanjutnya adalah menggunakan kelas untuk menginisialisasi koneksi ke database. Pada contoh ini saya hanya menggunakan class sebagai inisiator untuk melakukan koneksi ke database, untuk query masih menggunakan cara biasa, sebagai catatan, ada 1 tool yang lebih baik dari segi efisiensi dan keamanan kode, yaitu dengan menggunakan orm seperti sql-alchemy yang akan dibahas pada tutorial Flask Versi 2

Oke langsung saja kita implementasikan, pertama kita buat class connection, dalam hal ini saya beri nama file connection. py

brew install mysql-connector-c
_0

pada kelas fungsi di atas, kita menginisialisasi parameter untuk koneksi yang diinisialisasi pada metode init, sedangkan untuk mengembalikan hasil koneksi, kita menggunakan metode getDB dalam hal ini untuk mengembalikan kursor yang akan dipanggil saat kita mengeksekusi, dan untuk mengakhiri koneksinya kita menggunakan metode delcon, sedangkan metode yang lain hanyalah metode pendukung, sebenarnya untuk lebih mudahnya kita bisa membuat metode crud khusus seperti metode memilih dan sebagainya, namun karena keterbatasan waktu, saya hanya dibuat dasarnya

Setelah itu, kami membuat file baru untuk menguji apakah koneksi kami berhasil dan melakukan kueri. dalam hal ini saya menggunakan connectionTes. py

brew install mysql-connector-c
_1

dalam hal ini, saya mengimpor kelas koneksi sebagai db. Setelah itu diinisialisasi dengan variabel baru bernama mysqli. dan buat objek kursor di db dengan memanggil objek kelas mysql. getDB()

untuk querynya hampir sama dengan yang sebelumnya. perbedaannya adalah kita menghubungkannya menggunakan kelas,

PENUTUPAN

selebihnya tergantung bagaimana pembaca mengoptimalkan baik dari sisi program maupun dari sisi query, karena pada dasarnya tidak ada sistem yang aman. Hal inilah yang membuat banyak developer berlomba-lomba mengembangkan teknik atau tools agar lebih memberikan keamanan seperti yang saya sebutkan sebelumnya yaitu menggunakan orms seperti sql-alchemy. Akhir kata dengan tutorial singkat ini insyaallah para pembaca dapat sedikit belajar tentang teknik membuat koneksi dengan database, untuk tutorial selanjutnya yaitu mengimplementasikannya menggunakan FLASK

untuk source codenya bisa di download di github saya

Memuat

Cara menggunakan pymysql

Programmer asal Indonesia, penggila Dark World khususnya kopi dan terminal, punya cita-cita menjadi pythonist

Basis data apa yang digunakan Python?

Antarmuka Python standar untuk database adalah Python DB-API . Sebagian besar antarmuka database Python sesuai dengan standar ini.

Apa itu bahasa pemrograman Python?

Python adalah bahasa pemrograman yang banyak digunakan dalam aplikasi web, pengembangan perangkat lunak, ilmu data, dan pembelajaran mesin (ML) . Pengembang menggunakan Python karena efisien dan mudah dipelajari serta dapat dijalankan di berbagai platform.