Python & Sqlite

Pyyttoni

Aloittelijana olen yrittänyt sovittaa tkinter GUI:ta käyttämään sqlite tietokantaa mutta...
Esimerkkejä olen yrittänyt googlettaa mutta vaikeaa on sekin. Onko tiedossa hyviä malleja?
Aiemminkin on ollut mainintaa aloittaa tänne python osio...
Kiittäen :)

13

621

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • hjdsjhhjl

      Ei niitä varsinaisesti soviteta yhteen, sen kuin vain käyttää niitä. Vähän niinkuin jos menee ruokakauppaan ja samalla soittaa kännykällä... aivan eri asioita siis...

      • ssdfsdf

        Parempi kun pitää tietokannan, ohjelman ja käyttöliittymän erillään. Aina helpompi sitten muuttaa jotakin kun ei ole liikaa "sovitettu yhteen".


    • a---b+++

      Mitä oikein tarkoitat? Selvennä vähän että mitä yrität tehdä.

      • Pyyttoni

        Tkinterillä osaan vähän entryjä ja nappuloita käsitellä sekä sqliteä olen juuri koettanut opetella. Tarkoitus olisi luoda python-formi jolla sqlite-tietokantaa muokattaisi.
        Molempia olen pyörittänyt Python Shellissä ja pääteikkunassa mutta miten tuoda tkinter entryyn sqlite-haku?
        Opettelun tässä vaiheessa varsin pienikin esimerkki auttaisi.
        Onkohan nyt asioista kerrottu oikeilla nimillä?


      • fffffiiiuuuu
        Pyyttoni kirjoitti:

        Tkinterillä osaan vähän entryjä ja nappuloita käsitellä sekä sqliteä olen juuri koettanut opetella. Tarkoitus olisi luoda python-formi jolla sqlite-tietokantaa muokattaisi.
        Molempia olen pyörittänyt Python Shellissä ja pääteikkunassa mutta miten tuoda tkinter entryyn sqlite-haku?
        Opettelun tässä vaiheessa varsin pienikin esimerkki auttaisi.
        Onkohan nyt asioista kerrottu oikeilla nimillä?

        Harjoittele ennemmin yksi asia kerrallaan. Näyttää siltä että koitat kerralla opetella pythonia, graafisen käyttöliittymän tekoa (tosin tkinter on tässä tapauksessa varmaan niistä se helpoin) ja sitten tietokantaohjelmointia samaan aikaan.

        Vaikka sqliten käyttö onkin periaatteessa hyvin helppoa, tuo se vain turhaan ylimääräisen keskittymistä vievän tekijän tuossa vaiheessa. Tämä on vain mielipide.

        Voit harjoitella sqlite kyselyitä vaikkapa pythonin interaktiivisessa tulkissa aika näppärästi. Sitten vastaavien hakujen käyttö lomakkeilla yms on aika helppoa

        Tässä esimerkki simppelistä tietokannan luonnista, tietojen lisäyksestä ja sieltä selectillä hakemisesta. Todellisessa tilanteessa tuskin tekisit kaikkea yhdessä pötkössä :) toivottavasti esimerkki nyt ulostuu suomi24 oikein.. yritin laittaa entiteeteillä mut en tiijä menikö oikein

        import sqlite3
        c = sqlite3.connect(':memory:') # esimerkissä tietokanta vain muistissa
        cursor = c.cursor()
        cursor.execute('''create table henkilo (
        id integer primary key,
        nimi text not null,
        ika integer)''')
        daatta = [('Keijo', 20), ('Epeli', 21), ('Tarja', 16), ('Nykanen', 45), ('Tuksu', 666)]
        for a, b in daatta:
            print "viedaan henkilon tiedot kantaan: %s %sv" % (a, b)
            cursor.execute('insert into henkilo (nimi, ika) values (?, ?)', [a, b])
        print 'luetaan tiedot tietokannasta ikajarjestyksessa..'
        cursor.execute("select id, nimi, ika from henkilo order by ika asc")
        tulokset = cursor.fetchall()
        for tulos in tulokset:
            print tulos


      • Sama vauva-pyyttoni
        fffffiiiuuuu kirjoitti:

        Harjoittele ennemmin yksi asia kerrallaan. Näyttää siltä että koitat kerralla opetella pythonia, graafisen käyttöliittymän tekoa (tosin tkinter on tässä tapauksessa varmaan niistä se helpoin) ja sitten tietokantaohjelmointia samaan aikaan.

        Vaikka sqliten käyttö onkin periaatteessa hyvin helppoa, tuo se vain turhaan ylimääräisen keskittymistä vievän tekijän tuossa vaiheessa. Tämä on vain mielipide.

        Voit harjoitella sqlite kyselyitä vaikkapa pythonin interaktiivisessa tulkissa aika näppärästi. Sitten vastaavien hakujen käyttö lomakkeilla yms on aika helppoa

        Tässä esimerkki simppelistä tietokannan luonnista, tietojen lisäyksestä ja sieltä selectillä hakemisesta. Todellisessa tilanteessa tuskin tekisit kaikkea yhdessä pötkössä :) toivottavasti esimerkki nyt ulostuu suomi24 oikein.. yritin laittaa entiteeteillä mut en tiijä menikö oikein

        import sqlite3
        c = sqlite3.connect(':memory:') # esimerkissä tietokanta vain muistissa
        cursor = c.cursor()
        cursor.execute('''create table henkilo (
        id integer primary key,
        nimi text not null,
        ika integer)''')
        daatta = [('Keijo', 20), ('Epeli', 21), ('Tarja', 16), ('Nykanen', 45), ('Tuksu', 666)]
        for a, b in daatta:
            print "viedaan henkilon tiedot kantaan: %s %sv" % (a, b)
            cursor.execute('insert into henkilo (nimi, ika) values (?, ?)', [a, b])
        print 'luetaan tiedot tietokannasta ikajarjestyksessa..'
        cursor.execute("select id, nimi, ika from henkilo order by ika asc")
        tulokset = cursor.fetchall()
        for tulos in tulokset:
            print tulos

        Kiitos fffffiiiuuuu että olet ainakin vähän mukana. Esimerkkisi toimii kyllä hienosti.
        Olen jo tässä vaiheessa(muutama päivä sqliteä) kanssasi samaa mieltä että sqliten käyttö perusjutuilla ainakin on melko helppoa. Ehkä juuri siksi haluaisinkin laajentaa hommaa.
        Pythonin opiskelussa varmasti onkin tekemistä vaikka sekin perusteiltaan on melko selkeää. Kunnioitan syvästi teitä guruja...
        Minä itse (49v) en ole tietotekniikan alalla kovin kokenut (excel ja Oo.calc taipuu aika hyvin) mutta haluja kyllä on ja illat menee näitä pyöritellessä.
        Varmasti muillakin on sama näkemys että asiaa on helpompi viedä eteenpäin kun on selkeä päämäärä. Minulla se olisi melko laajakin tietokantaa pöyhivä itsenäinen ohjelma mutta pienillä jutuilla saisi perusteisiin vinkkejä.
        -Tosi hyvä malli olisi esim. fffffiiiuuuu:n juttu omasta Tk-ikkunasta käytettynä...


      • ffsfssww
        Sama vauva-pyyttoni kirjoitti:

        Kiitos fffffiiiuuuu että olet ainakin vähän mukana. Esimerkkisi toimii kyllä hienosti.
        Olen jo tässä vaiheessa(muutama päivä sqliteä) kanssasi samaa mieltä että sqliten käyttö perusjutuilla ainakin on melko helppoa. Ehkä juuri siksi haluaisinkin laajentaa hommaa.
        Pythonin opiskelussa varmasti onkin tekemistä vaikka sekin perusteiltaan on melko selkeää. Kunnioitan syvästi teitä guruja...
        Minä itse (49v) en ole tietotekniikan alalla kovin kokenut (excel ja Oo.calc taipuu aika hyvin) mutta haluja kyllä on ja illat menee näitä pyöritellessä.
        Varmasti muillakin on sama näkemys että asiaa on helpompi viedä eteenpäin kun on selkeä päämäärä. Minulla se olisi melko laajakin tietokantaa pöyhivä itsenäinen ohjelma mutta pienillä jutuilla saisi perusteisiin vinkkejä.
        -Tosi hyvä malli olisi esim. fffffiiiuuuu:n juttu omasta Tk-ikkunasta käytettynä...

        Äääh, en ole tuota tk itse käyttänyt eikä nyt viitsi alkaa opettelemaan :)

        Ei sillä ole väliä minkälaisesta käyttöliittymästä niitä tietokantakutsuja tehdään. Suosittelisin, että teet ensin valmiiksitietokantaluokan/moduulin ja tuon käyttöliittymän lomakkeen ja lopuksi sitten vain sovitat ne yhteen.

        Eli tässä tapauksessa teet vaikkapa yksinkertaisen Henkilo luokan, joka hallitsee ne tietokantatoiminnallisuudet mita tarvitset (vaikkapa henkilöiden lisäys, poisto ja haku). Sitten kun tämä toimii konsolista, niin se on helppo siirtää lomakkeen käytettäväksi. Etuna tämän toiminnallisuuden jakamiseen omaan luokkaan/moduuliin on se että toiminnot on määritelty yhteen paikkaan. Jos teet sql kyselyt jokaisessa näppäimen käsittelijässä lomakkella erikseen, niin sama toiminnallisuus tulee äkkiä kirjoitettua moneen paikkaan ja ylläpito menee hankalaksi.

        Käyttöliittymänkin voit toki tehdä ensin. Teet lomakkeen jossa on kaikki kentät ja painikkeet joita tarvitset. Tässä vaiheessa painikkeiden toiminnot ei tarvitse olla mitään todellisia vaan ne voivat tulostaa vaikka "lisää nappia painettu" ja näet että siltä osin koodi toimii.

        Sitten kun molemmat palikat toimivat päivität lomakeesi käyttämään tekemääsi Henkilöluokkaa ja voila!


    • Anonyymi

      Joskus tein tuon niin, että Tkinter-käyttöliittymä oli sovelluksessa omana luokkanaan ja tietokantatoiminnot omanaan. Käyttöliittymäluokasta sitten kutsuttiin tarvittaessa tietokantatoimintoja.

      • Anonyymi

        Minä en ole osannut arvostaa Tkinter käyttöliittymää siitä lähtien kun tajusin kuinka hankalaa sillä on tuottaa siisti liittymä python ohjelmalle. Itse asiassa sqlite3 ja python yhdistelmän soveltaminen on ollut niin vähäistä että kaiken joutuisin opettelemaan uudestaan. Mielenkiintoa asia kohtaan löytyy, keksisi vaan motivoivan tarpeen luoda luoda tietokanta sovellus pythonilla.


      • Anonyymi
        Anonyymi kirjoitti:

        Minä en ole osannut arvostaa Tkinter käyttöliittymää siitä lähtien kun tajusin kuinka hankalaa sillä on tuottaa siisti liittymä python ohjelmalle. Itse asiassa sqlite3 ja python yhdistelmän soveltaminen on ollut niin vähäistä että kaiken joutuisin opettelemaan uudestaan. Mielenkiintoa asia kohtaan löytyy, keksisi vaan motivoivan tarpeen luoda luoda tietokanta sovellus pythonilla.

        Tkinter on aika helppo, kun sen vaan oivaltaa. Minulla oli tietokantana MySQL, mutta periaate on sama kuin muillakin tietokannoilla. Tällä hetkellä tulee käytettyä enemmän NoSQL:ää, kuten MongoDB:tä.


      • Anonyymi
        Anonyymi kirjoitti:

        Minä en ole osannut arvostaa Tkinter käyttöliittymää siitä lähtien kun tajusin kuinka hankalaa sillä on tuottaa siisti liittymä python ohjelmalle. Itse asiassa sqlite3 ja python yhdistelmän soveltaminen on ollut niin vähäistä että kaiken joutuisin opettelemaan uudestaan. Mielenkiintoa asia kohtaan löytyy, keksisi vaan motivoivan tarpeen luoda luoda tietokanta sovellus pythonilla.

        Framet helpottaa aika paljon käyttöliittymän suunnittelua, kun niihin saa niputettua käyttöliittymän komponentteja, ja sitten aseteltua näitä ryhmiä haluamiinsa kohtiin.

        Tuossa yksi esimerkki Notepadin replace-ikkunan tapaisesta palikasta:

        https://www.pythontutorial.net/tkinter/tkinter-frame/


      • Anonyymi
        Anonyymi kirjoitti:

        Framet helpottaa aika paljon käyttöliittymän suunnittelua, kun niihin saa niputettua käyttöliittymän komponentteja, ja sitten aseteltua näitä ryhmiä haluamiinsa kohtiin.

        Tuossa yksi esimerkki Notepadin replace-ikkunan tapaisesta palikasta:

        https://www.pythontutorial.net/tkinter/tkinter-frame/

        Ihan tosissaanko te vielä tuota jaksatte opetella.


      • Anonyymi
        Anonyymi kirjoitti:

        Ihan tosissaanko te vielä tuota jaksatte opetella.

        Ei kannattaisi tuhlata aikaansa moiseen muinaisjäänteeseen.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Purra hyökkää nyt suomalaisen duunarin kimppuun teettämällä mamuilla palkatonta työtä

      Niinpä niin. Persut duunaripuolue, HAH. Joko alkaa kovapäisinkin persu älyämään, että persut ovat Suomen kansan vastain
      Maailman menoa
      344
      12128
    2. Mitä hyvää rikkaiden hyysääminen Suomelle tuonut?

      Minäpä vastaan: ei yhtikäs mitään, vaan pelkkää vahinkoa. Demareiden ansiosta Suomen valtio oli käytännössä vielä 1980-
      Maailman menoa
      157
      11174
    3. Tytti Tuppurainen häpäisi Suomen epäisänmaallisella lausunnollaan USA:n ulkoministerille Rubiolle.

      https://www.is.fi/politiikka/art-2000011816267.html Miksi Tytti Tuppurainen päästetään antamaan typeriä lausuntoja noin
      Maailman menoa
      279
      6532
    4. Purra ehdottaa vaan Tanskan mallia, joka on erittäin hyvä malli

      Purra ehdotti helmikuussa Suomeen Tanskan mallia, jossa maahanmuuttajilta vaaditaan työntekoa sosiaalitukien saamiseksi.
      Maailman menoa
      255
      5327
    5. Kokoomusnuoret: Sosiaalitukien työvelvoitteen tulisi koskea kaikkia

      Riikka Purra on esittänyt, että maahanmuuttajilta tulisi edellyttää palkatonta työtä sosiaalitukien vastineeksi. Kokoom
      Maailman menoa
      191
      3799
    6. Pystyisitkö olla

      Kanssani kaiken sotkun jälkeen? Ainakaan tunteet ei ole loppuneet
      Ikävä
      176
      3603
    7. L/OVER ikuisesti minun

      Aivan järkyttävä sarja. Ei voi olla katsomatta, mutta tuo omat muistot mieleen. Näyttelijät näyttelevät turhankin hyvin
      Ikävä
      60
      2651
    8. Purra vaatii: Työvelvoite maahanmuuttajille ja kantasuomalaisille pitkäaikaistyöttömille

      Jos Perussuomalaiset ja Kokoomus ovat seuraavan hallituksen kaksi johtavaa puoluetta, on suomalaisille pitkäaikaistyöttö
      Perussuomalaiset
      149
      2226
    9. Jyrki Linnankivi, Jyrki 69 - Goottirokkarista kirkonmieheksi Lappiin!

      Jyrki Linnankivi eli Jyrki 69 on The 69 Eyes -rockyhtyeen vokalisti. Lauluhommien lisäksi hän sanoittaa, säveltää ja sov
      Työ ja opiskelu
      13
      1894
    10. Onnea Maria ja Vilma Amazing Race -voitosta!

      Maria Guzenina ja Vilma Vähämaa voittivat Amazing Race Suomi -kisan. Voiton hetkellä Guzenina paljasti, miksi valitsi Vi
      Tv-sarjat
      18
      1781
    Aihe