全部产品
Search
文档中心

Lindorm:Kembangkan aplikasi berdasarkan framework ORM Python

更新时间:Feb 04, 2026

Topik ini menjelaskan cara menggunakan framework ORM Python untuk menghubungkan dan menggunakan LindormTable.

Prasyarat

Prosedur

  1. Jalankan perintah berikut untuk menginstal library PyMySQL yang digunakan untuk menghubungkan ke database MySQL:

    pip install PyMySQL
  2. Jalankan perintah berikut untuk menginstal framework SQLAlchemy:

    pip install SQLAlchemy
  3. Konfigurasikan parameter koneksi.

    engine = create_engine('mysql+pymysql://<user>:<password>@<lindorm_mysql_addr>:33060/<database>', echo=True)

    Parameter

    Parameter

    Deskripsi

    user

    Jika Anda lupa password user Anda, Anda dapat mengubahnya di sistem manajemen kluster LindormTable. Untuk informasi selengkapnya, lihat Ubah password user.

    password

    lindorm_mysql_addr

    Titik akhir kompatibel MySQL dari LindormTable. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir tersebut, lihat Lihat titik akhir.

    Penting
    • Jika aplikasi Anda dideploy pada instance ECS, kami menyarankan Anda menggunakan VPC untuk menghubungkan ke instans Lindorm guna memastikan keamanan lebih tinggi dan latensi jaringan lebih rendah.

    • Jika aplikasi Anda dideploy secara on-premises, aktifkan titik akhir publik di konsol sebelum menghubungkan ke instans Lindorm melalui Internet. Untuk mengaktifkan titik akhir publik, pilih Database Connections > Wide Table Engine di konsol. Pada tab Wide Table Engine, klik Enable Public Endpoint.

    • Jika Anda menghubungkan ke instans Lindorm melalui VPC, atur lindorm_mysql_addr ke titik akhir VPC yang kompatibel dengan MySQL. Jika Anda menghubungkan ke instans Lindorm melalui Internet, atur lindorm_mysql_addr ke titik akhir Internet yang kompatibel dengan MySQL.

    database

    Nama database yang ingin Anda hubungkan. Secara default, client Anda terhubung ke database bernama default.

  4. Contoh berikut menunjukkan cara menghubungkan dan menggunakan LindormTable untuk membuat tabel serta menyisipkan data.

    # Buat tabel.
    Base.metadata.create_all(engine)
    
    # Buat objek session.
    session = Session()
    # Buat objek Player.
    new_player = Player(player_id = 1001, player_name = "john", player_height = 2.08)
    # Tulis data ke Lindorm.
    session.add(new_player)
    # Tulis beberapa baris data ke Lindorm.
    session.add_all([
        Player(player_id=1002, player_name="bob", player_height=1.65),
        Player(player_id=1003, player_name="smith", player_height=1.82),
    ])
    session.commit()

Kode contoh

Berikut ini adalah kode contoh lengkap:

from sqlalchemy import create_engine
from sqlalchemy import Column, String, Integer, Float
from sqlalchemy.orm import declarative_base
from sqlalchemy.orm import sessionmaker


Base = declarative_base()
# Definisikan objek Player.
class Player(Base):
    # Nama tabel:
    __tablename__ = 'player'
    # Struktur tabel:
    player_id = Column(Integer, primary_key=True,autoincrement=False)
    player_name = Column(String(255))
    player_height = Column(Float)
    def __str__(self):
        return " ".join(str(item) for item in (self.player_id,self.player_name,self.player_height))


# Inisialisasi koneksi database. Ubah parameter koneksi sesuai kebutuhan.
engine = create_engine('mysql+pymysql://user:test@ld-bp1l39h99192d****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com:33060/default', echo=True)
Session = sessionmaker(bind=engine)

# Buat tabel.
Base.metadata.create_all(engine)

# Buat objek session.
session = Session()
# Buat objek Player.
new_player = Player(player_id = 1001, player_name = "john", player_height = 2.08)
# Tulis data ke Lindorm.
session.add(new_player)
# Tulis beberapa baris data ke Lindorm.
session.add_all([
    Player(player_id=1002, player_name="bob", player_height=1.65),
    Player(player_id=1003, player_name="smith", player_height=1.82),
])
session.commit()

# Kueri data dengan player_id 1001.
rows = session.query(Player).filter(Player.player_id == 1001).all()
print([row.__str__() for row in rows])


# Hapus data dengan player_id 1002.
session.query(Player).filter(Player.player_id == 1002).delete()
session.commit()

# Perbarui data dengan player_id 1003.
session.query(Player).filter(Player.player_id == 1003).update({"player_name":"brown"})
session.commit()

# Kueri semua data.
rows = session.query(Player).all()
print([row.__str__() for row in rows])

Eksekusi yang berhasil akan mengembalikan hasil kueri berikut:

['1001 john 2.08']
['1001 john 2.08', '1003 brown 1.82']