Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dokumentacija za MySQLdb modul

[es] :: Python :: Dokumentacija za MySQLdb modul

[ Pregleda: 3872 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.ipact.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Dokumentacija za MySQLdb modul03.03.2005. u 18:28 - pre 232 meseci
Poštovani svi,

Da li biste mi mogli reći gde se može naći dokumentacija za MySQLdb modul za python? Našao sam PEP 249 koji objašnjava Python Database API, ne konkretno za MySQLdb. Da li je to to? Konkretno kod metoda cursor.description se kaže:

.description This read-only attribute is a sequence of 7-item sequences. Each of these sequences contains information describing one result column: (name, type_code, display_size, internal_size, precision, scale, null_ok). The first two items (name and type_code) are mandatory, the other five are optional and must be set to None if meaningfull values are not provided. This attribute will be None for operations that do not return rows or if the cursor has not had an operation invoked via the executeXXX() method yet. The type_code can be interpreted by comparing it to the Type Objects specified in the section below. Dakle ovaj atribut daje uređene sedmorke koje bliže objašnjavaju šta je pročitano. Da li se negde može naći objašnjenje šta koje polje u sedmorci znači i kojeg su tipa, odn. koje vrednosti vraćaju.

Zahvalan,
f
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.179.eunet.yu.



Profil

icon Re: Dokumentacija za MySQLdb modul04.03.2005. u 01:03 - pre 232 meseci
Možda će ti ovo biti od neke pomoći…

http://www.serpia.com/MySQL_tutorial/MySQL_tutorial.htm
http://dustman.net/andy/python/MySQLdb_obsolete/doc/MySQLdb.html
http://sourceforge.net/docman/...238&group_id=22307#mysqldb

Ili u krajnjoj liniji, ako ni jedno ne pomogne

http://dev.mysql.com/doc/mysql/en/index.html

 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.in.is.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Dokumentacija za MySQLdb modul04.03.2005. u 10:16 - pre 232 meseci
U principu su ti bitna samo prva dva polja od .description, jer ona uvek imaju vrednost. Prvo polje je ime kolone u bazi, drugo je tip kolone. Posto python podrzava dinamicke tipove ;) drugo polje ti u principu nije nesto bitno (sem ako hoces da se bavis sa operacijama nad datumima i slicno). Za neku prostiju upotrebu ti nije potrebno.

Elem, posto MySQLdb u potpunosti podrzav DB-API 2.0 specifikaciju, .description radi bez problema. Pogledaj sledeci primer:

Code:

mydb = MySQLdb.connect(host,user, pass, db)
myst = mydb.cursor()
myst.execute("select stuff, id from testtable")
print myst.description


Izlaz ce biti:


(('stuff', 253, 15, 50, 50, 0, 1), ('id', 3, 5, 11, 11, 0, 1))


Iz ovog tuple-a se moze izvuci sve sto nam je potrebno. Ukoliko ti je potreban i tip kolone u bazi, pogledaj drugo polje u listi. Za stuff tip je 253, sto je jedan od MySQLdb.STRING tipova.

No, da nastavimo dalje - kako nam Python dozvoljava dinamicke tipove i dinamicko kreiranje atributa klasa, kreiranje klase koja oznacava red u bazi je krajnje trivijalno, npr. ovako:

Code:

class Row:
    def __init__(self,list, row):
        [setattr(self, r[1][0], row[r[0]]) for r in enumerate(list)]


U prevodu, klasa ce dobiti atribute koji odgovaraju imenima u bazi. Verujem da je moguce napisati tu klasu i znatno krace, ali ovo mi je prvo palo na pamet :).

Klasa moze biti upotrebljena na sledeci nacin:
Code:

for row in myst.fetchall():
    r = Row(myst.description, row)
    print r.stuff, r.id


Ako pokusas da napises recimo print r.ne_postoji dobices AttributeError exception, sto je odlicno jer pomaze u kontroli kôda (na primer, da se ne bi cudio sto r.nekopolje ne vraca nikakvu vrednost).

Naravno, klasa Row bi mogla da bude znatno komplikovanija ali i ne mora. Ovakva kakva jeste obavlja posao.

Za kraj, sto se tice dokumentacije, pored PEP-a i dokumentacije koja ide uz MySQLdb modul nista ti vise nije potrebno.

Pozdrav,
alex.py ;)

Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

[es] :: Python :: Dokumentacija za MySQLdb modul

[ Pregleda: 3872 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.