Mudahnya Akses Database dengan SQLAlchemy

Foto os

Anda sudah memiliki database di PostgreSQL dan ingin mengolahnya menggunakan bahasa Python. Berikut ini cara mudah menggunakan pustaka SQLAlchemy.

Uji coba ini menggunakan Ubuntu 9.10. Sedangkan SQL Alchemy yang digunakan adalah versi 0.5.5.

$ sudo apt-get update
$ sudo apt-get install python-sqlalchemy python-sqlalchemy-doc python-psycopg2

Kemudian buatlah file query.py berikut ini.

import sqlalchemy as sa
import sys
 
db = sa.create_engine('postgres://myuser:mypassword@localhost/mydb', echo=True)
try:
    db.connect()
except sa.exc.OperationalError, pesan:
    sys.exit(pesan[0].strip())
 
sql = "SELECT * FROM voucher"
q = db.execute(sql)
for row in q:
    print row['id'], row['harga']

Sesuaikanlah myuser, mypassword, dan mydb. Juga objek database lainnya seperti tabel voucher, field id, dan harga. Penggunaan parameter echo=True untuk debugging, dimana query yang dikirim ke database server akan ditampilkan.

Dokumentasi yang lebih lengkap di /usr/share/doc/python-sqlalchemy-doc/html/index.html.

Anda bisa gunakan kate sebagai text editor. Selain memilki syntax highlight untuk Python ia juga memiliki terminal plugin yang memudahkan eksekusi script. kate juga memiliki code completion untuk mempercepat pengetikan. Ia juga memiliki plugin Python code browser, memudahkan dalam debugging.

Selamat mencoba.

Komentar

Foto dhmyess

mas boleh tanya gak? saya mau

mas boleh tanya gak?
saya mau coba2 aplikasi evoucher menggunakan debian squeeze, saat menginstall saya mendapati hal spt ini:

dpkg-reconfigure evoucher
Stopping Electronic VoucherNo process in pidfile '/var/run/evoucher/evoucher.pid ' found running; none killed.
failed!
/usr/lib/python2.6/dist-packages/sqlalchemy/sql/expression.py:820: SADeprecation Warning: autocommit on text() is deprecated. Use .execution_options(autocommit= True)
return _TextClause(text, bind=bind, *args, **kwargs)

namun saya belum mencobanya di ubuntu, mudah2an hanya di debian saja ya.

Foto os

Mengenai error saat

Mengenai error saat dpkg-reconfigure evoucher abaikan saja. Wajar karena daemon akan dimatikan padahal sedang tidak hidup.

Sedangkan mengenai warning pada SQLAlchemy dikarenakan sejak SQLAlchemy 6.0 ia memperkenalkan teknik baru untuk autocommit. Bila sebelumnya seperti ini:

from sqlalchemy.sql.expression import text
sql = text("SELECT test(:id)", autocommit=True)

maka sekarang menjadi:

from sqlalchemy.sql.expression import text
sql = text("SELECT test(:id)").execution_options(autocommit=True)

Belum semua aplikasi yang saya buat menerapkan teknik baru ini, sehingga tampil warning itu.

Foto dhmyess

Disitu ternyata masalahnya

Disitu ternyata masalahnya ... konsep lama belum ngerti2 juga eh keluar konsep baru hehe..
Terimakasih atas pencerahannya...

Btw kok evoucher dr rab linux belum pernah dipromosikan di forum djawir? saya sendiri baru tau ada evoucher dari rab linux setelah mencari informasi tentang sms gateway linux.

sekali lagi saya berterimakasih banyak atas pencerahannya..
Salam OpenSource dari Tembilahan - Riau

Dharma

Foto os

Iya, sumber daya belum cukup

Iya, sumber daya belum cukup untuk mempromosikan seperti itu. Silahkan saja kalau ingin memperkenalkannya ke mereka.

Foto ical

Maaf pak saya juga sedang

Maaf pak saya juga sedang mencoba belajar evouchernya yang saya coba di ubuntu 11.10, dgn postgresql 9.1.3 python 2.7.2 , dan setelah terpasang, rule nya bagaimana pak? pertama-tama apa yg harus kita buat, saya coba kirim dan terima sms, parser sudah bisa jalan tp belum bisa buat account membernya atau refillnya, dan untuk modem/hp yang suppport apa saja kira2 pak terutama utk modul stk dan dial? terima kasih sebelumnya pak.

Foto os

SMS Gateway adalah hal yang

SMS Gateway adalah hal yang perlu dipahami lebih dulu. Ini terlepas dari keberadaan evoucher. Silahkan baca Database PostgreSQL, Pemrograman Python, dan SMS Gateway pada Bab SMS Gateway. Modem yang bisa digunakan untuk SMS, USSD, hingga MENU STK adalah merk Wavecom, baik yang USB maupun serial. Harganya sekitar Rp 300.000,-

Foto ical

Terima kasih pak

Terima kasih pak penjelasannya, saya sedikit mulai memahami. Baik gateway dan evouchernya sudah bisa terintsall dan terintergrasi, dan sudah bisa mencoba kirim dan terima pesan sesuai format, baik via jalur modem dan chat. Saya tertarik mencoba dan mempelajari lagi, selanjutnya ingin rasanya belajar bagaimana implementasi dan interface untuk aplikasinya.

Foto os

Web interface untuk IM

Web interface untuk IM Gateway bisa ambil di http://upload.rab.co.id/node/115393. Itu merupakan modul Drupal 6.

Foto ical

Maaf pak ingin tanya, kalau

Maaf pak ingin tanya, kalau dial dan sms kan tinggal insert text ke im.antrian, kalau ingin akses menu stk melalui im-gw bagaimana pak? masih kurang faham. Kalau coba manual akses menu stk, saya coba gunakan mtronik via console sudah bisa pak.

Foto ical

Terima kasih pak interface IM

Terima kasih pak interface IM Agent nya sudah bisa dipasang di drupalnya, pesan juga sudah bisa terima dan kirim melalui IM Agent Interface di drupal nya, tapi di menu kirim .../drupal/?q=imgw/pesan/add masih muncul query warning :
" warning: pg_query(): Query failed: ERROR: relation "im.v_agent" does not exist LINE 1: ...ias, a.status, a.jalur, j.nama AS nama_jalur FROM im.v_agent... ^ in /var/www/drupal/includes/database.pgsql.inc on line 139.
user warning: query: SELECT a.alias, a.status, a.jalur, j.nama AS nama_jalur FROM im.v_agent a, jalur j WHERE a.jalur = j.id UNION SELECT a.id, a.status, a.jalur, j.nama FROM im.agent a, jalur j WHERE a.jalur = j.id AND NOT EXISTS (SELECT * FROM im.modem m WHERE m.imei = a.id) ORDER BY 3, 1 in /var/www/drupal/sites/all/modules/imgw/pesan.module on line 283. "

Foto os

Iya ya. Saya belum buatkan

Iya ya. Saya belum buatkan script installer untuk membuat view itu. Ini langsung saja di psql:

CREATE VIEW im.v_agent AS
    SELECT agent.id, agent.id AS alias, agent.jalur, agent.status, agent.job
         FROM im.agent
         WHERE agent.jalur <> 1
    UNION 
        SELECT m.imei AS id, m.msisdn, a.jalur, a.status, a.job
         FROM im.agent a, im.modem m
         WHERE a.id = m.imei;

Foto ical

Maaf pak ingin tanya, kalau

Maaf pak ingin tanya, kalau dial dan sms kan tinggal insert text ke im.antrian, kalau ingin akses menu stk melalui im-gw bagaimana pak? masih kurang faham. Kalau coba manual akses menu stk, saya coba gunakan mtronik via console sudah bisa pak.

Foto os

Sama seperti di console,

Sama seperti di console, rangkaian menu dimasukkan ke field pesan, contoh:

INSERT INTO im.antrian(pengirim, pesan) SELECT '+628571234567', 'M-Tronik';