logo
CGI
Databaser
Velkommen > Moduler > Python >Databaser
../../common/gfx/prev.gif ../../common/gfx/home.gif ../../common/gfx/next.gif

Python og MySQL

etter bidrag fra kollega Edgar Bostrøm

Hva:
Kort om installering og bruk av MySQL fra Python
.

MySQL

  • Last ned MySQL fra www.mysql.com og installer denne der du ønsker.
  • Last evt. også ned "MySQL GUI Tools Bundle" fra samme sted. Her finner du verktøy for å administrere og inspisere databaser.
  • Databasen må startes
.

Python bibliotek for MySQL

.

Kjøring av SQL-statements i Python - prinsipp:

image0

Når vi programmerer bruker vi MySQLdb-objekter for å koble oss opp, hente data osv. Dette blir dermed integrert i Python.

Opplegget blir i korthet:

  • Koble opp databasen (lag et databaseoppkoblingsobjekt som peker til den maskinen og databasen du ønsker å jobbe med)
  • Deklarer et resultatobjekt som kan eksekvere spørringer og hvor resultatet av spørringen mot databasen kan legges
  • Bruk databasen
    • Legg spørringen i en tekststreng
    • Kjør spørringen
    • Bruk resultatet
  • Koble ned databasen
.

Eksempel:

Edgar Bostrøm
Python 2.0 (#8, Oct 16 2000, 17:27:58) [MSC 32 bit (Intel)] on win32
Type "copyright", "credits" or "license" for more information.
IDLE 0.6 -- press F1 for help
>>> def MySQLdemo():

    # importer bibliotek, koble opp databasen
    # og sett opp en markør (resultatobjekt)
    # host, bruker, passord, database
    # som host kan du skrive ip, db er databasenavnet i MySQL
    import MySQLdb
    #forutsetter først at basen ligger lokalt, uten passord
    mindatabase=MySQLdb.connect(host='localhost',user='',passwd='',db='test')
    mintabell=mindatabase.cursor()

    # Legger inn en ny kunde. Gir ingen melding tilbake hvis alt er ok
    sql_setning="insert into kunde values (46,'Hansen & Co')"
    mintabell.execute(sql_setning)

    #definer og eksekver en sporring.
    # NB: Hele SQL (også tabelloppretting) kan brukes.
    sql_setning = 'select * from kunde'
    mintabell.execute(sql_setning)

    # Lister ut de aktuelle, alt. 1, med feltnavn
    for kundenr,kundenavn in mintabell.fetchall():
    print 'Kunde --> ',kundenr,kundenavn
    print "ferdig1"

    # Lister ut de aktuelle, alt. 2, med feltnr
    for radene in mintabell.fetchall():
      print 'Kunde --> ',radene[0],radene[1]
    print "ferdig2"

    mindatabase.close()

  # eksempel som viser oppkobling mot ekstern database:
  # mindatabase =MySQLdb.connect
  # (host='pc16-81.hiof.no',user='iad10002',passwd='javaxerxgoy', db='skatt')

Resultatet av de to utlistings avsnittene ovenfor:

>>> MySQLdemo()
Kunde -->  1 Ole
Kunde -->  2 Hans
Kunde -->  46 Hansen & Co
ferdig1
Kunde -->  1 Ole
Kunde -->  2 Hans
Kunde -->  46 Hansen & Co
ferdig2
>>>
Referanser og eksempler:

Noen eksempler på bruk av databaser i dette materialet:

Produksjon, kontroll og vedlikehold:
November 2003, Edgar Bostrøm
Revidert mai 2007, Børre Stenseth

Markup og web fra Høgskolen i Østfold: http://www.ia.hiof.no/~borres/ml/

../../common/gfx/prev.gif ../../common/gfx/home.gif ../../common/gfx/next.gif
skjema popup

Valid XHTML 1.0 Strict
popup card
Bygget med WXT