Python Dan MySQL
Python Dan MySQL
oleh Chaitanya Baweja 28 Desember 2020 8 Komentar intermediat basis data ilmu data
Daftar isi
Hapus iklan
MySQL adalah salah satu sistem manajemen basis data (DBMS) paling populer
di pasaran saat ini. Ia menduduki peringkat kedua setelah Oracle DBMS
dalam Peringkat DB-Engines tahun ini . Karena sebagian besar aplikasi
perangkat lunak perlu berinteraksi dengan data dalam beberapa bentuk,
bahasa pemrograman seperti Python menyediakan alat untuk menyimpan dan
mengakses sumber data ini.
Dengan menggunakan teknik yang dibahas dalam tutorial ini, Anda akan dapat
mengintegrasikan database MySQL dengan aplikasi Python secara efisien. Anda
akan mengembangkan database MySQL kecil untuk sistem pemeringkatan film
dan mempelajari cara melakukan kueri langsung dari kode Python Anda.
Untuk mendapatkan hasil maksimal dari tutorial ini, Anda harus memiliki
pengetahuan tentang konsep Python seperti forloop , fungsi , penanganan
pengecualian , dan menginstal paket Python menggunakan
Python . Anda pipjuga harus memiliki pemahaman dasar tentang sistem
manajemen basis data relasional dan kueri SQL seperti
Python SELECT, DROPPython, Python 3, Python 4, Python 5, Python 6, Python 7,
Python 8, Python 9, Python 10, Python 11, Python 12, Python 13, Python 14,
Python 16, Python 18, Python 19 ...CREATEJOIN
Unduhan Gratis: Dapatkan contoh bab dari Python Tricks: Buku yang
menunjukkan praktik terbaik Python dengan contoh sederhana yang dapat
Anda terapkan secara instan untuk menulis kode + Pythonic yang lebih indah.
Karena merupakan sumber terbuka sejak awal tahun 1995, MySQL dengan
cepat menjadi pemimpin pasar di antara solusi SQL. MySQL juga merupakan
bagian dari ekosistem Oracle. Meskipun fungsionalitas intinya sepenuhnya
gratis, ada juga beberapa add-on berbayar. Saat ini, MySQL digunakan oleh
semua perusahaan teknologi besar, termasuk Google, LinkedIn, Uber, Netflix,
Twitter, dan lainnya.
Selain komunitas open source yang besar untuk dukungan, ada banyak alasan
lain untuk keberhasilan MySQL:
Pada tahun 2010, ketika Oracle mengakuisisi Sun Microsystems dan MySQL,
banyak yang khawatir tentang masa depan MySQL. Saat itu, Oracle merupakan
pesaing terbesar MySQL. Para pengembang khawatir bahwa ini merupakan
pengambilalihan paksa dari Oracle dengan tujuan menghancurkan MySQL.
Hingga saat ini, MariaDB tetap berlisensi penuh GPL , sehingga sepenuhnya
menjadi domain publik. Di sisi lain, beberapa fitur MySQL hanya tersedia
dengan lisensi berbayar. Selain itu, MariaDB menyediakan beberapa fitur yang
sangat berguna yang tidak didukung oleh server MySQL, seperti SQL
terdistribusi dan penyimpanan kolom . Anda dapat menemukan lebih banyak
perbedaan antara MySQL dan MariaDB yang tercantum di situs web MariaDB .
MySQL menggunakan sintaksis yang sangat mirip dengan SQL Standar. Akan
tetapi, ada beberapa perbedaan penting yang disebutkan dalam dokumentasi
resmi .
Hapus iklan
Menginstal Server MySQL dan Konektor MySQL/Python
Sekarang, untuk mulai mengerjakan tutorial ini, Anda perlu menyiapkan dua
hal: server MySQL dan konektor MySQL . Server MySQL akan menyediakan
semua layanan yang diperlukan untuk menangani basis data Anda. Setela⁸h
server aktif dan berjalan, Anda dapat menghubungkan aplikasi Python Anda
dengannya menggunakan Konektor MySQL/Python.
Catatan: Ingat nama host, nama pengguna, dan kata sandi karena ini akan
diperlukan untuk membuat koneksi dengan server MySQL nanti.
Meskipun Anda hanya memerlukan server MySQL untuk tutorial ini, Anda juga
dapat menyiapkan alat bantu lain seperti MySQL Workbench menggunakan
penginstal ini. Jika Anda tidak ingin menginstal MySQL langsung di sistem
operasi Anda, maka menggunakan MySQL di Linux dengan Docker merupakan
alternatif yang mudah.
Driver ini biasanya diperoleh sebagai modul pihak ketiga. Python Database
API (DB-API) mendefinisikan antarmuka standar yang harus dipatuhi oleh
semua driver database Python. Rincian ini didokumentasikan dalam PEP
249. Semua driver database Python, seperti sqlite3 untuk SQLite, psycopg untuk
PostgreSQL, dan MySQL Connector/Python untuk MySQL, mengikuti aturan
implementasi ini.
Demikian pula, dalam Python Anda perlu memasang konektor Python MySQL
untuk berinteraksi dengan basis data MySQL. Banyak paket yang mengikuti
standar DB-API, tetapi yang paling populer di antaranya adalah Konektor
MySQL/Python . Anda bisa mendapatkannya dengan pip:
Kerang
Ular piton
Hapus iklan
Ini adalah alur kerja umum yang mungkin berbeda-beda tergantung pada
aplikasi masing-masing. Namun, apa pun aplikasinya, langkah pertama adalah
menghubungkan basis data dengan aplikasi Anda.
Membangun Koneksi
Langkah pertama dalam berinteraksi dengan server MySQL adalah membuat
koneksi. Untuk melakukannya, Anda
memerlukan connect()modul mysql.connector. Fungsi ini menerima
parameter seperti host, user, dan passworddan
mengembalikan MySQLConnectionobjek. Anda dapat menerima kredensial ini
sebagai input dari pengguna dan meneruskannya ke connect():
Ular piton
try:
with connect(
host="localhost",
user=input("Enter username: "),
password=getpass("Enter password: "),
) as connection:
print(connection)
except Error as e:
print(e)
Kode di atas menggunakan kredensial login yang dimasukkan untuk membuat
koneksi dengan server MySQL Anda. Sebagai gantinya, Anda mendapatkan
objek MySQLConnection, yang disimpan dalam connectionvariabel. Mulai
sekarang, Anda akan menggunakan variabel ini untuk mengakses server MySQL
Anda.
Ada beberapa hal penting yang perlu diperhatikan dalam kode di atas:
Anda harus selalu menutup koneksi setelah selesai mengakses basis data.
Membiarkan koneksi terbuka yang tidak digunakan dapat menyebabkan
beberapa kesalahan tak terduga dan masalah kinerja. Kode di atas
memanfaatkan manajer konteks menggunakanwith , yang
mengabstraksikan proses pembersihan koneksi.
Anda tidak boleh membuat kode keras kredensial login Anda , yaitu nama
pengguna dan kata sandi Anda, langsung dalam skrip Python. Ini adalah
praktik yang buruk untuk penyebaran dan menimbulkan ancaman
keamanan yang serius . Kode di atas meminta kredensial login pengguna.
Kode ini menggunakan modul bawaan getpassuntuk menyembunyikan
kata sandi. Meskipun ini lebih baik daripada membuat kode keras, ada
cara lain yang lebih aman untuk menyimpan informasi sensitif, seperti
menggunakan variabel lingkungan .
Anda kini telah membuat koneksi antara program Anda dan server MySQL Anda,
tetapi Anda masih perlu membuat basis data baru atau menghubungkan ke
basis data yang sudah ada di dalam server.
Ular piton
cursor = connection.cursor()
Kode di atas memberi Anda contoh kelas MySQLCursor.
Ular piton
try:
with connect(
host="localhost",
user=input("Enter username: "),
password=getpass("Enter password: "),
) as connection:
create_db_query = "CREATE DATABASE online_movie_rating"
with connection.cursor() as cursor:
cursor.execute(create_db_query)
except Error as e:
print(e)
Setelah mengeksekusi kode di atas, Anda akan memiliki database baru yang
disebut online_movie_ratingdi server MySQL Anda.
Anda mungkin menerima galat di sini jika basis data dengan nama yang sama
sudah ada di server Anda. Untuk mengonfirmasi hal ini, Anda dapat
menampilkan nama semua basis data di server Anda. Dengan
menggunakan MySQLConnectionobjek yang sama dari sebelumnya,
jalankan SHOW DATABASESpernyataan :
Ular piton
Anda membuat basis data baru di bagian ini dengan menjalankan CREATE
DATABASEpernyataan . Di bagian berikutnya, Anda akan melihat cara
menghubungkan ke basis data yang sudah ada.
Hapus iklan
Ular piton
try:
with connect(
host="localhost",
user=input("Enter username: "),
password=getpass("Enter password: "),
database="online_movie_rating",
) as connection:
print(connection)
except Error as e:
print(e)
Kode di atas sangat mirip dengan skrip koneksi yang Anda gunakan
sebelumnya. Satu-satunya perubahan di sini adalah databaseparameter
tambahan, tempat nama basis data Anda diteruskan ke connect(). Setelah
Anda menjalankan skrip ini, Anda akan terhubung
ke online_movie_ratingbasis data.
Ular piton
create_movies_table_query = """
CREATE TABLE movies(
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
release_year YEAR(4),
genre VARCHAR(100),
collection_in_mil INT
)
"""
with connection.cursor() as cursor:
cursor.execute(create_movies_table_query)
connection.commit()
Sekarang Anda memiliki moviestabel di database Anda. Anda
meneruskan create_movies_table_queryke cursor.execute(), yang
menjalankan eksekusi yang diperlukan.
Seperti yang Anda lakukan dengan moviestabel, jalankan skrip berikut untuk
membuat reviewerstabel:
Ular piton
create_reviewers_table_query = """
CREATE TABLE reviewers (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(100),
last_name VARCHAR(100)
)
"""
with connection.cursor() as cursor:
cursor.execute(create_reviewers_table_query)
connection.commit()
Jika diperlukan, Anda dapat menambahkan informasi lebih lanjut tentang
pengulas, seperti ID email atau informasi demografisnya.
Namun, first_nameuntuk last_namesaat ini, hal tersebut akan sesuai dengan
tujuan Anda.
Ular piton
create_ratings_table_query = """
CREATE TABLE ratings (
movie_id INT,
reviewer_id INT,
rating DECIMAL(2,1),
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(reviewer_id) REFERENCES reviewers(id),
PRIMARY KEY(movie_id, reviewer_id)
)
"""
with connection.cursor() as cursor:
cursor.execute(create_ratings_table_query)
connection.commit()
Implementasi hubungan kunci asing di MySQL sedikit berbeda dan terbatas
dibandingkan dengan SQL standar . Di MySQL, induk dan anak dalam batasan
kunci asing harus menggunakan mesin penyimpanan yang sama .
InnoDB adalah mesin penyimpanan default dan paling populer. Mesin ini
membantu menjaga integritas data dengan mendukung batasan kunci asing .
Ini berarti bahwa setiap operasi CRUD pada kunci asing diperiksa untuk
memastikan bahwa operasi tersebut tidak menyebabkan ketidakkonsistenan di
berbagai tabel.
Anda dapat memilih untuk menggunakan kembali kursor yang sama untuk
beberapa eksekusi. Dalam hal tersebut, semua eksekusi akan menjadi
satu transaksi atomik , bukan beberapa transaksi terpisah. Misalnya, Anda
dapat mengeksekusi semua CREATE TABLEpernyataan dengan satu kursor, lalu
melakukan transaksi Anda hanya sekali:
Ular piton
DESCRIBE <table_name>;
Untuk mendapatkan beberapa hasil dari cursorobjek, Anda perlu
menggunakan cursor.fetchall(). Metode ini mengambil semua baris dari
pernyataan yang terakhir dieksekusi. Dengan asumsi Anda sudah memiliki
objek MySQLConnectiondalam connectionvariabel, Anda dapat mencetak
semua hasil yang diambil oleh cursor.fetchall():
Ular piton
Ular piton
Ular piton
Hapus iklan
Menggunakan.execute()
Pendekatan pertama menggunakan cursor.execute()metode yang sama
dengan yang telah Anda gunakan selama ini. Anda menulis INSERT
INTOkueri dalam bentuk string dan meneruskannya ke cursor.execute(). Anda
dapat menggunakan metode ini untuk memasukkan data ke
dalam moviestabel.
1. id
2. title
3. release_year
4. genre
5. collection_in_mil
Ular piton
insert_movies_query = """
INSERT INTO movies (title, release_year, genre, collection_in_mil)
VALUES
("Forrest Gump", 1994, "Drama", 330.2),
("3 Idiots", 2009, "Drama", 2.4),
("Eternal Sunshine of the Spotless Mind", 2004, "Drama", 34.5),
("Good Will Hunting", 1997, "Drama", 138.1),
("Skyfall", 2012, "Action", 304.6),
("Gladiator", 2000, "Action", 188.7),
("Black", 2005, "Drama", 3.0),
("Titanic", 1997, "Romance", 659.2),
("The Shawshank Redemption", 1994, "Drama",28.4),
("Udaan", 2010, "Drama", 1.5),
("Home Alone", 1990, "Comedy", 286.9),
("Casablanca", 1942, "Romance", 1.0),
("Avengers: Endgame", 2019, "Action", 858.8),
("Night of the Living Dead", 1968, "Horror", 2.5),
("The Godfather", 1972, "Crime", 135.6),
("Haider", 2014, "Action", 4.2),
("Inception", 2010, "Adventure", 293.7),
("Evil", 2003, "Horror", 1.3),
("Toy Story 4", 2019, "Animation", 434.9),
("Air Force One", 1997, "Drama", 138.1),
("The Dark Knight", 2008, "Action",535.4),
("Bhaag Milkha Bhaag", 2013, "Sport", 4.1),
("The Lion King", 1994, "Animation", 423.6),
("Pulp Fiction", 1994, "Crime", 108.8),
("Kai Po Che", 2013, "Sport", 6.0),
("Beasts of No Nation", 2015, "War", 1.4),
("Andadhun", 2018, "Thriller", 2.9),
("The Silence of the Lambs", 1991, "Crime", 68.2),
("Deadpool", 2016, "Action", 363.6),
("Drishyam", 2015, "Mystery", 3.0)
"""
with connection.cursor() as cursor:
cursor.execute(insert_movies_query)
connection.commit()
Tabel moviessekarang terisi dengan tiga puluh catatan. Kode akan
dipanggil connection.commit()di bagian akhir. Sangat penting untuk
memanggil .commit()setelah melakukan modifikasi pada tabel.
Menggunakan.executemany()
Pendekatan sebelumnya lebih cocok jika jumlah rekaman cukup kecil dan Anda
dapat langsung menuliskan rekaman ini ke dalam kode. Namun, hal ini jarang
terjadi. Anda sering kali menyimpan data ini di berkas lain, atau data akan
dibuat oleh skrip lain dan perlu ditambahkan ke basis data MySQL.
Ular piton
insert_reviewers_query = """
INSERT INTO reviewers
(first_name, last_name)
VALUES ( %s, %s )
"""
reviewers_records = [
("Chaitanya", "Baweja"),
("Mary", "Cooper"),
("John", "Wayne"),
("Thomas", "Stoneman"),
("Penny", "Hofstadter"),
("Mitchell", "Marsh"),
("Wyatt", "Skaggs"),
("Andre", "Veiga"),
("Sheldon", "Cooper"),
("Kimbra", "Masters"),
("Kat", "Dennings"),
("Bruce", "Wayne"),
("Domingo", "Cortes"),
("Rajesh", "Koothrappali"),
("Ben", "Glocker"),
("Mahinder", "Dhoni"),
("Akbar", "Khan"),
("Howard", "Wolowitz"),
("Pinkie", "Petit"),
("Gurkaran", "Singh"),
("Amy", "Farah Fowler"),
("Marlon", "Crafford"),
]
with connection.cursor() as cursor:
cursor.executemany(insert_reviewers_query, reviewers_records)
connection.commit()
Dalam skrip di atas, Anda meneruskan kueri dan daftar rekaman sebagai
argumen ke .executemany(). Rekaman ini dapat diambil dari file atau dari
pengguna dan disimpan dalam reviewers_recordsdaftar.
Kode tersebut digunakan %ssebagai placeholder untuk dua string yang harus
disisipkan dalam insert_reviewers_query. Placeholder berfungsi
sebagai penentu format dan membantu menyediakan tempat untuk variabel di
dalam string. Variabel yang ditentukan kemudian ditambahkan ke tempat ini
selama eksekusi.
Ular piton
insert_ratings_query = """
INSERT INTO ratings
(rating, movie_id, reviewer_id)
VALUES ( %s, %s, %s)
"""
ratings_records = [
(6.4, 17, 5), (5.6, 19, 1), (6.3, 22, 14), (5.1, 21, 17),
(5.0, 5, 5), (6.5, 21, 5), (8.5, 30, 13), (9.7, 6, 4),
(8.5, 24, 12), (9.9, 14, 9), (8.7, 26, 14), (9.9, 6, 10),
(5.1, 30, 6), (5.4, 18, 16), (6.2, 6, 20), (7.3, 21, 19),
(8.1, 17, 18), (5.0, 7, 2), (9.8, 23, 3), (8.0, 22, 9),
(8.5, 11, 13), (5.0, 5, 11), (5.7, 8, 2), (7.6, 25, 19),
(5.2, 18, 15), (9.7, 13, 3), (5.8, 18, 8), (5.8, 30, 15),
(8.4, 21, 18), (6.2, 23, 16), (7.0, 10, 18), (9.5, 30, 20),
(8.9, 3, 19), (6.4, 12, 2), (7.8, 12, 22), (9.9, 15, 13),
(7.5, 20, 17), (9.0, 25, 6), (8.5, 23, 2), (5.3, 30, 17),
(6.4, 5, 10), (8.1, 5, 21), (5.7, 22, 1), (6.3, 28, 4),
(9.8, 13, 1)
]
with connection.cursor() as cursor:
cursor.executemany(insert_ratings_query, ratings_records)
connection.commit()
Ketiga tabel sekarang terisi dengan data. Anda sekarang memiliki basis data
rating film daring yang berfungsi penuh. Langkah selanjutnya adalah
memahami cara berinteraksi dengan basis data ini.
Coba tulis kueri MySQL untuk memilih semua rekaman dari moviestabel dan
mengirimkannya ke .execute():
Ular piton
Ular piton
Ular piton
Ular piton
Coba ambil kembali judul lima film terlaris yang dirangkai dengan tahun
perilisannya, tetapi kali ini gunakan .fetchmany():
Ular piton
Ular piton
Ular piton
UPDATEMemerintah
Salah satu pengulas dalam basis data Anda, Amy Farah Fowler, kini menikah
dengan Sheldon Cooper. Nama belakangnya kini telah berubah
menjadi Cooper, jadi Anda perlu memperbarui basis data Anda sebagaimana
mestinya. Untuk memperbarui catatan, MySQL
menggunakan UPDATEpernyataan :
Ular piton
update_query = """
UPDATE
reviewers
SET
last_name = "Cooper"
WHERE
first_name = "Amy"
"""
with connection.cursor() as cursor:
cursor.execute(update_query)
connection.commit()
Kode tersebut meneruskan kueri pembaruan ke cursor.execute(),
dan .commit()membawa perubahan yang diperlukan ke reviewerstabel.
UPDATE
ratings
SET
rating = 5.0
WHERE
movie_id = 18 AND reviewer_id = 15;
SELECT *
FROM ratings
WHERE
movie_id = 18 AND reviewer_id = 15;
Kueri di atas pertama-tama memperbarui peringkat dan kemudian
menampilkannya. Anda dapat membuat skrip Python lengkap yang
membangun koneksi dengan basis data dan memungkinkan pengulas untuk
mengubah peringkat:
Ular piton
SELECT *
FROM ratings
WHERE
movie_id = "%s" AND reviewer_id = "%s"
""" % (
new_rating,
movie_id,
reviewer_id,
movie_id,
reviewer_id,
)
try:
with connect(
host="localhost",
user=input("Enter username: "),
password=getpass("Enter password: "),
database="online_movie_rating",
) as connection:
with connection.cursor() as cursor:
for result in cursor.execute(update_query, multi=True):
if result.with_rows:
print(result.fetchall())
connection.commit()
except Error as e:
print(e)
Simpan kode ini ke berkas bernama modify_ratings.py. Kode di atas
menggunakan %splaceholder untuk memasukkan input yang diterima ke
dalam update_querystring. Untuk pertama kalinya dalam tutorial ini, Anda
memiliki beberapa kueri di dalam satu string. Untuk meneruskan beberapa
kueri ke satu , Anda perlu
menyetel argumencursor.execute() metode ke .multiTrue
Peringatan : Jangan coba masukan di bawah ini pada database Anda! Hal itu
akan merusak tabel Anda dan Anda harus membuatnya ulang.
Misalnya, jika pengguna mengirim movie_id=18, reviewer_id=15, dan yang
baru rating=5.0sebagai input, maka outputnya akan terlihat seperti ini:
Kerang
$ python modify_ratings.py
Enter movie id: 18
Enter reviewer id: 15
Enter new rating: 5.0
Enter username: <user_name>
Enter password:
[(18, 15, Decimal('5.0'))]
Dengan dan telah diubah menjadi . Namun jika Anda seorang hacker, maka
Anda mungkin mengirim perintah tersembunyi dalam input
Anda rating:movie_id=18reviewer_id=155.0
Kerang
$ python modify_ratings.py
Enter movie id: 18
Enter reviewer id: 15"; UPDATE reviewers SET last_name = "A
Enter new rating: 5.0
Enter username: <user_name>
Enter password:
[(18, 15, Decimal('5.0'))]
Sekali lagi, output menunjukkan bahwa yang ditentukan ratingtelah diubah
menjadi 5.0. Apa yang berubah?
Ular piton
Ular piton
SELECT *
FROM ratings
WHERE
movie_id = %s AND reviewer_id = %s
"""
val_tuple = (
new_rating,
movie_id,
reviewer_id,
movie_id,
reviewer_id,
)
try:
with connect(
host="localhost",
user=input("Enter username: "),
password=getpass("Enter password: "),
database="online_movie_rating",
) as connection:
with connection.cursor() as cursor:
for result in cursor.execute(update_query, val_tuple,
multi=True):
if result.with_rows:
print(result.fetchall())
connection.commit()
except Error as e:
print(e)
Perhatikan bahwa %splaceholder tidak lagi berada dalam tanda kutip string.
String yang diteruskan ke placeholder mungkin berisi beberapa karakter
khusus. Jika perlu, karakter ini dapat di-escape dengan benar oleh pustaka
yang mendasarinya.
Kerang
$ python modify_ratings.py
Enter movie id: 18
Enter reviewer id: 15"; UPDATE reviewers SET last_name = "A
Enter new rating: 5.0
Enter username: <user_name>
Enter password:
1292 (22007): Truncated incorrect DOUBLE value: '15";
UPDATE reviewers SET last_name = "A'
cursor.execute()akan memunculkan pengecualian jika menemukan karakter
yang tidak diinginkan dalam input pengguna. Anda harus menggunakan
pendekatan ini setiap kali Anda memasukkan input pengguna dalam kueri. Ada
cara lain untuk mencegah serangan injeksi SQL juga.
DELETEMemerintah
Menghapus catatan bekerja sangat mirip dengan memperbarui catatan. Anda
menggunakan DELETEpernyataan tersebut untuk menghapus catatan yang
dipilih.
Catatan: Penghapusan adalah proses yang tidak dapat dibatalkan . Jika Anda
tidak menggunakan WHEREklausa tersebut, maka semua rekaman dari tabel
yang ditentukan akan dihapus. Anda perlu menjalankan INSERT INTOkueri lagi
untuk mendapatkan kembali rekaman yang dihapus.
Sebaiknya Anda menjalankan SELECTkueri dengan filter yang sama terlebih
dahulu untuk memastikan bahwa Anda menghapus data yang benar. Misalnya,
untuk menghapus semua peringkat yang diberikan oleh reviewer_id = 2, Anda
harus menjalankan kueri terkait terlebih dahulu SELECT:
Ular piton
Ular piton
Konektor ini berfungsi sebagai antarmuka antara program Anda dan basis data
MySQL, dan Anda mengirimkan kueri SQL melalui konektor tersebut. Namun,
banyak pengembang lebih suka menggunakan paradigma berorientasi
objek daripada kueri SQL untuk memanipulasi data.
2. peewee adalah ORM yang ringan dan cepat serta mudah diatur. Ini cukup
berguna jika interaksi Anda dengan basis data terbatas pada
pengambilan beberapa rekaman. Misalnya, jika Anda perlu menyalin
rekaman terpilih dari basis data MySQL ke dalam file CSV, maka peewee
mungkin menjadi pilihan terbaik Anda.
3. Django ORM merupakan salah satu fitur Django yang paling canggih dan
disertakan bersama kerangka web Django. Django ORM dapat
berinteraksi dengan berbagai basis data seperti SQLite, PostgreSQL, dan
MySQL. Banyak aplikasi berbasis Django menggunakan Django ORM
untuk pemodelan data dan kueri dasar, tetapi sering kali beralih ke
SQLAlchemy untuk persyaratan yang lebih kompleks.
Anda mungkin menemukan salah satu pendekatan ini lebih cocok untuk
aplikasi Anda. Jika Anda tidak yakin yang mana yang harus digunakan, maka
sebaiknya gunakan MySQL Connector/Python yang direkomendasikan secara
resmi yang Anda lihat dalam tutorial ini.
Kesimpulan
Dalam tutorial ini, Anda telah melihat cara menggunakan MySQL
Connector/Python untuk mengintegrasikan database MySQL dengan aplikasi
Python Anda. Anda juga melihat beberapa fitur unik dari database MySQL yang
membedakannya dari database SQL lainnya.
Jika Anda tertarik, Python juga memiliki konektor untuk DBMS lain
seperti MongoDB dan PostgreSQL . Untuk informasi lebih lanjut, lihat Tutorial
Basis Data Python .
Membagikan
🐍 Trik Python 💌
Dapatkan Trik Python yang singkat dan menarik yang dikirim ke kotak masuk
Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan
kapan saja. Dikurasi oleh tim Real Python.
Chaitanya adalah seorang Pythonista yang rajin dan menulis untuk Real Python.
Setiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi
standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah:
Kuasai Keterampilan Python di Dunia Nyata dengan Akses Tak Terbatas ke
Python Asli
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video
langsung, dan komunitas ahli Pythonista:
LinkedInTwitterLangit biruIndonesiaE-mail
Apa hal terpenting atau hal favorit yang Anda pelajari? Bagaimana Anda akan
menggunakan keterampilan baru Anda? Tinggalkan komentar di bawah dan
beri tahu kami.
Terus belajar
Topik Terkait: intermediat basis data ilmu data
Tutorial Terkait:
Lingkungan Virtual Python: Pengantar
Kelas Python: Kekuatan Pemrograman Berorientasi Objek
Pengantar Pustaka SQL Python
Langkah Pertama Anda Dengan Django: Menyiapkan Proyek Django
Bangun Proyek Web Flask yang Dapat Diskalakan dari Awal
Hapus iklan