[gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
ralli
Beiträge: 3900
Registriert: 02.03.2008 08:03:02

[gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von ralli » 26.06.2021 18:28:19

Hallo,

ich arbeite mich gerade mit python3 in Verbindung mit sqlite3 ein. Den ersten kleinen Erfolg habe ich gerade verbucht. Es soll eine simple Adressdatenbank werden. Zur Probe nahm ich erstmal die Felder Nachname und Vorname. Hier der python Code:

Code: Alles auswählen

import sqlite3
verbindung = sqlite3.connect("probedb")
zeiger = verbindung.cursor()
zeiger.execute("SELECT * FROM adressen")
inhalt = zeiger.fetchall()
print(inhalt)
verbindung.close()
Nach dem Starten des Programms in der Konsole bekomme ich folgende Ausgabe:

Code: Alles auswählen

[(1, 'Duck', 'Donald'), (2, 'Mustermann', 'Gabriele'), (3, 'Fischer', 'Fritz')]
Wie bekomme ich eine geordnete zeilenweise Ausgabe hin? So das jeder Datensatz in einer Zeile steht? Schon mal Danke im vorraus.

Grüß ralli
Zuletzt geändert von ralli am 27.06.2021 16:56:57, insgesamt 1-mal geändert.
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören.

DeletedUserReAsG

Re: mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von DeletedUserReAsG » 26.06.2021 18:31:25

Du lässt dir in einer Schleife jedes Element von inhalt ausgeben.

schwedenmann
Beiträge: 5525
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von schwedenmann » 26.06.2021 18:34:26

Hallo

Vllt so

https://www.informatik-aktuell.de/betri ... qlite.html


Listing2 + 5

mfg
schwedenmann

Benutzeravatar
ralli
Beiträge: 3900
Registriert: 02.03.2008 08:03:02

Re: mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von ralli » 26.06.2021 19:57:11

Danke Euch,

die Website (und einige andere) hatte ich heute schon auf dem Schirm.

Ich hab folgendes codiert, was funktioniert:

Code: Alles auswählen

for row in zeiger.execute('SELECT * FROM adressen'):
        print(row)

Hab auch die DB-API gefunden und werde sie durcharbeiten.

https://docs.python.org/3/library/sqlite3.html

Gruß ralli
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören.

Benutzeravatar
ralli
Beiträge: 3900
Registriert: 02.03.2008 08:03:02

Re: mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von ralli » 27.06.2021 16:55:39

Wie komme ich zu Python? Zuerst dachte ich an Kotlin, wo ja ein unheimlicher Hype drum entstand. Mit was das gerechtfertigt war, erschließt sich mir bei einem Marktanteil von ca 1,4 % nicht wirklich. Dann sah ich, das Python mittlerweile einen Marktanteil von über 30 % hat, und damit sehr verbreitet ist. Ein weiterer Mehrwert ist die gute Dokumentation. Ich werde später auch GUI Programmierung mit Python lernen. Somit ist Python auch universal einsetzbar und praktisch auf jedem PC verfügbar. Das gefällt mir gut. Jetzt aber lerne ich erst mal die Grundlagen, und dann geht es weiter.

Gruß ralli
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören.

DeletedUserReAsG

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von DeletedUserReAsG » 27.06.2021 17:13:36

Da’s als gelöst markiert wurde, ist es vielleicht okay, wenn ich etwas OT anmerke:
ralli hat geschrieben: ↑ zum Beitrag ↑
27.06.2021 16:55:39
Zuerst dachte ich an Kotlin, wo ja ein unheimlicher Hype drum entstand. Mit was das gerechtfertigt war, erschließt sich mir bei einem Marktanteil von ca 1,4 % nicht wirklich.
Kotlin würde ich eher als „das bessere Java“ bezeichnen, und Java war lange Zeit sehr gefragt. Dazu lässt sich Kotlin zu Bytecode kompilieren, der von einer JVM ausgeführt werden kann – was etwa auch unter Android der Fall ist → man kann Android-Anwendungen in Kotlin schreiben, und Kotlin ist imho deutlich zugänglicher, als Java. Auch kann man in bestehenden Projekten fliegend von Java auf Kotlin wechseln, ohne alles neu schreiben zu müssen.

Python hingegen ist eher das moderne BASIC: es wird hoher Wert auf Zugänglichkeit und umfassende Funktionalität gelegt, wofür an anderer Stelle halt Kompromisse eingegangen werden müssen: Python ist nicht sehr performant, und ressourcenschonend schon gar nicht. Für kleine Projekte kein Problem, aber eine umfassende Anwendung ausschließlich in Python zu schreiben, ist möglicherweise nicht die beste Idee.

Die Programmiersprache, die man lernen will, nach Marktanteil auf einem nicht näher umrissenen Markt nach nicht näher umrissenen Kriterien zu einem gegebenen Zeitpunkt auszuwählen, halte ich für eher nicht so sinnvoll. Hier hat’s wohl dazu geführt, dass du bei Python gelandet bist – das hätte dich aber auch zu C# oder VB bringen können …

Benutzeravatar
ralli
Beiträge: 3900
Registriert: 02.03.2008 08:03:02

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von ralli » 29.06.2021 06:22:43

Danke @niemand für die Informationen. Kotlin habe ich schon mal ausprobiert. Und mich natürlich vorher informiert. Die IntelliJ IDE lief bei mir nicht und der Kotlin Compiler war bei mir bei einem einfachen "Hello World" nicht sehr performant. Das Programmieren ist bei mir heute eher ein Hobby, deshalb muß ich nichts mehr lernen, was berufsmäßig sinnvoll wäre. Die aktuelle Marktanteil Statistik habe ich mir nur interessehalber angeschaut, weil teilweise so ein Hype um Kotlin gemacht wurde. Nun nach den reinen Zahlen zu urteilen, hat es seinen Platz gefunden, aber auch nicht mehr. Python gefällt mir, weil es doch sehr universal eingesetzt werden kann. Und es die wichtigsten Anbindungen für die GUI Programmierung besitzt. Zur Zeit habe ich mich mit Tkinter beschäftigt. Habe bereits ein kleines Programm mit Funktionalität hinbekommen, nicht besonderes, ein Texteditor. Ist für mich aber auch nicht gänzlich neu, habe vor einigen Jahren mal mit Perl Tk einen Editor erstellt. Leider habe ich den Sourcecode nicht mehr.

Gruß ralli
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören.

Benutzeravatar
ralli
Beiträge: 3900
Registriert: 02.03.2008 08:03:02

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von ralli » 29.06.2021 09:17:07

Noch ein Tipp, wer sich ernsthaft mit Python beschäftigen möchte, benötigt eine professionelle IDE und kommt um die pycharm Community Edition von JetBrains nicht herum. Sie kann mit synaptik oder apt installiert werden. Die Pyhon IDLE ist dagegen eine Spielerei ..... mit pycharm hingegen macht es wirklich Spaß. Pycharm ist Opensource und kostenlos.

Gruß ralli
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören.

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von curt123 » 06.07.2021 14:18:10

ralli hat geschrieben: ↑ zum Beitrag ↑
29.06.2021 09:17:07
Noch ein Tipp, wer sich ernsthaft mit Python beschäftigen möchte, benötigt eine professionelle IDE und kommt um die pycharm Community Edition von JetBrains nicht herum. Sie kann mit synaptik oder apt installiert werden.
Interessant, aber mit Bullseye wird das Programm bei mir offenbar nicht angeboten, ich finde jedenfalls keinen Eintrag mit Synaptic - oder wäre das ganz neu?

Das hier ist wohl auch nicht die richtige Version http://neuro.debian.net/pkgs/pycharm-co ... loppy.html ?
Note: some package dependencies have non-standard licensing terms – please verify compliance

This package provides a mere container and installer for distributed upstream tarballs. It by no means qualifies as “proper” Debian package and there is no support for it provided by Debian project. Use at your own risk.

DeletedUserReAsG

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von DeletedUserReAsG » 06.07.2021 18:33:12

ralli hat geschrieben: ↑ zum Beitrag ↑
29.06.2021 09:17:07
Noch ein Tipp, wer sich ernsthaft mit Python beschäftigen möchte, benötigt eine professionelle IDE und kommt um die pycharm Community Edition von JetBrains nicht herum.
Scharfer Einspruch meinerseits: man kann sehr wohl auch ernsthaft, sogar professionell, in Python coden, ohne Jetbrains Kram nutzen zu müssen. PyCharm ist auch nicht Open Source (weswegen es nicht in den Repos zu finden ist), und nur in der eingeschränkten Community-Edition kostenlos. Es ist eine sehr gute Software, keine Frage – aber zwingend notwendig ist sie auf keinen Fall: Für Projekte im Hobbymaßstab böte sich etwa Debianthonny an, wer Debianvim mag und umgehen kann, wird sich wohl lieber den dafür hernehmen, analog natürlich die Emacs-User (Reihenfolge ist keine Wertung). Wer’s moderner mag, und mit Bloat kein Problem hat, mag sich VS Code dafür einrichten, und wer mit noch viel mehr Bloat kein Problem hat, für den gibt’s auch bei Eclipse etwas. Debianeric fand ich auch recht nett, mag aber nicht für jeden was sein – auf jeden Fall gibt’s zu PyCharm mehr als nur eine Alternative.

Was allerdings eine sehr geschickte Sache ist: Debianipython3 – eine Python-Shell mit Syntax-Highlighting und Completion und so Kram.
Zuletzt geändert von DeletedUserReAsG am 06.07.2021 18:40:15, insgesamt 1-mal geändert.

Benutzeravatar
ralli
Beiträge: 3900
Registriert: 02.03.2008 08:03:02

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von ralli » 06.07.2021 18:36:57

Du warst schneller. Pycharm war mir auch nur bei der ersten Recherche aufgefallen, die Community Edition ist ja opensource und kostenlos. Unter Debian gibt es aber auch noch spyder3 , das erfüllt den selben Zweck. Das Paket ist auch unter bullseye verfügbar. Mir gefällt spyder3 sogar noch besser. Nein zwingend notwendig ist pycharm keinesfalls, aber Spyder3 ist ja ein vollwertiger Ersatz. Das war halt mein damaliger Kenntnisstand, den ich ja nun korrigiert habe.

Grüße ralli
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören.

DeletedUserReAsG

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von DeletedUserReAsG » 06.07.2021 18:42:10

Nun warst du schneller, und hast vor meinem Edit gepostet ;)

Was PyCharm und OSS angeht: steht zwar dran, aber zumindest mir fällt’s dann doch ziemlich schwer, tatsächlich die Sourcen zu finden …

Edit: Früher™ war’s üblich, die ersten Schritte ganz ohne IDE zu machen, in ’nem blanken Editor (ggf. mit Syntaxhighlighting, aber ohne kontextabhängiger Autovervollständigung). Es war dem Lernerfolg sicher nicht abträglich …

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von curt123 » 06.07.2021 19:57:46

niemand hat geschrieben: ↑ zum Beitrag ↑
06.07.2021 18:42:10
Edit: Früher™ war’s üblich, die ersten Schritte ganz ohne IDE zu machen, in ’nem blanken Editor (ggf. mit Syntaxhighlighting, aber ohne kontextabhängiger Autovervollständigung). Es war dem Lernerfolg sicher nicht abträglich …
Ja früher. Eine zu forsche Autovervollständigung wird auch schon mal ziemlich lästig, kann aber meist abgeschaltet werden.
Bei komplexen Projekten mit vielen Dateien wird aber eine gute IDE immer wichtiger, um in vernünftigem Tempo sinnvoll arbeiten zu können.
ralli hat geschrieben: ↑ zum Beitrag ↑
06.07.2021 18:36:57
Unter Debian gibt es aber auch noch spyder3 , das erfüllt den selben Zweck. Das Paket ist auch unter bullseye verfügbar. Mir gefällt spyder3 sogar noch besser.
Danke für den Hinweis. Ich überlege noch, ob die Ausrichtung entspr. https://www.spyder-ide.org/ auch Einschränkungen oder eher mehr Features bedeutet:
data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.

DeletedUserReAsG

Re: [gelöst] Mit python und sqlite Datenbank zeilenweise auslesen

Beitrag von DeletedUserReAsG » 06.07.2021 20:39:39

curt123 hat geschrieben: ↑ zum Beitrag ↑
06.07.2021 19:57:46
Bei komplexen Projekten mit vielen Dateien wird aber eine gute IDE immer wichtiger, um in vernünftigem Tempo sinnvoll arbeiten zu können.
Natürlich. Aber solche Projekte kommen weit nach den ersten Schritten – bei denen man noch glauben mag, eine tolle Entwicklungsumgebung würde einen zu einem tollen Entwickler machen. Auch heute sollten imho die Basics zumindest am Anfang manuell gemacht werden. Dann weiß man später, was zu tun ist, wenn’s in der Entwicklungsumgebung dann doch mal hakt.

Antworten