• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jaka baza danych w Python na początek?

Object Storage Arubacloud
+1 głos
404 wizyt
pytanie zadane 24 kwietnia 2020 w Rozwój zawodowy, nauka, praca przez Kubs Mądrala (5,190 p.)
Witajcie,

jako zupełny początkujący w temacie baz danych, szukam najprostszej bazy którą mogę obsługiwać w Pythonie.

Od czego zacząć? Może jakaś książka bądź wideo warte polecenia?

Z góry dziękuję.

1 odpowiedź

0 głosów
odpowiedź 24 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)

najprostszej 

Jak najprościej, to Python ma sqlite'a dosłownie w bibliotece standardowej.

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

komentarz 24 kwietnia 2020 przez Kubs Mądrala (5,190 p.)
Dzięki Adrian,

dopytam jeszcze, a jak taką bazę podłączyć pod stronę internetową? Dokładnie chcę sobie przetestować sytuację, gdzie kod QR otwiera stronę www z bazą danych.
komentarz 24 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)

podłączyć pod stronę internetową

Ale dla pewności, używasz tu jakiegoś flaska, django lub coś takiego?

komentarz 24 kwietnia 2020 przez Kubs Mądrala (5,190 p.)
Nic takiego. Na razie mam opanowane podstawy Pythona.

Wiem, że JS byłby lepszy do tworzenia stron, jednak dość trudny ten JS dla mnie.

Chyba, że da się tak, że Python będzie backend, natomiast fronted ktoś napisze w JS. Ale czy to ma sens..hmm.
komentarz 24 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)

Wiem, że JS byłby lepszy do tworzenia stron

Do backendów, to jest konkurencja, a nie "znacznie lepszy" ;)

Chyba, że da się tak, że Python będzie backend, natomiast fronted ktoś napisze w JS. Ale czy to ma sens..hmm.

...to jest normalne. Właśnie tak się pisze strony w Pythonie - więc jak najbardziej ma to sens. Większość stron ma backend w języku nie-JSowym a JS we frontendzie (bo trudno coś innego użyć ;) )

Natomiast moje brało się stąd, że zapytałeś najpierw żeby była łatwa do obsłużenia w Pythonie,  a potem "a jak taką bazę podłączyć pod stronę internetową", więc... założyłem że już masz backend strony, do której chcesz ją "podpiąć".

komentarz 24 kwietnia 2020 przez Kubs Mądrala (5,190 p.)
Rozumiem,

to teraz pozwól że laik zada Ci pytanie, którego się wstydzi :)

Co to znaczy napisać backend w Pythonie?

Wiem, że JS obsługuje wygląd (HTML,CSS), obsługę zdarzeń itp. No a Python?
komentarz 24 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)
...to może ogólnie poczytaj, jak się tworzy strony internetowe i podział na frontend/backend? :)

We frontendzie przejmujesz się interfejsem załadowanej strony. Struktura, wygląd, interakcje w zakresie otwartej strony. Backend zajmuje się całą logiką która dzieje się przy każdym zapytaniu do serwera (pierwszej wejście, klikanie na linki, API AJAXowe etc). Obsługuje sesje, bazy danych, przechowywane pliki, logowanie użytkowników etc.
komentarz 24 kwietnia 2020 przez Kubs Mądrala (5,190 p.)
Czyli struktura działania wygląda tak?

SQlite -> Python -> Django -> JS
komentarz 24 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)
Django to jest framework Pythonowy.

Django gada z bazą danych (tu w zasadzie wszystkie równie łatwo, bo jest ORM - wystarczy zainstalować samą bazę i paczkę do obsługi bazy) i serwuje strony, na stronie HTML/CSS/JS odpowiada za wygląd i interakcje.
komentarz 24 kwietnia 2020 przez DawidK Nałogowiec (37,910 p.)

Jeżeli chcesz zacząć z bazami danych i pythonem, to możesz ściągnąć sobie np:

https://sqlitebrowser.org/dl/

pisać polecenia i zobaczyć "co wyjdzie" otwierając bazę.

niewielki kawałek kodu poniżej (utworzenie bazy z 1 tabelą i dwoma produktami mającymi nazwę i cenę). 

Generalnie:

-> importujesz sqlite3

-> tworzysz połączenie z nazwą tabeli (baza się utworzy w folderze z programem jeżeli jej nie będzie)

-> tworzysz kursor - do niego będziesz pakować polecenia sql (execute() będzie je wykonywać)

-> commit() - zapisze zmiany w bazie, bez tego nie zobaczysz zmian

-> close() - zamknie połączenie

+ dużo sqla :)

Wyniki zobaczysz odpalając program i plik-> otwórz baze danych-> otwierając plik (rozszerzenie db), możesz wtedy dosyć łatwo przeglądać, strukturę bazy i dane

import sqlite3
connection = sqlite3.connect('warehouse.db')

cursor = connection.cursor()
cursor.execute('''CREATE TABLE product (name text, price float)''')

cursor.execute('''INSERT INTO product VALUES ('dmuchawka coldsteel','200.00')''')
cursor.execute('''INSERT INTO product VALUES ('strzalki','50.00')''')

connection.commit()
connection.close()

sam się ucze także może jest jakiś lepszy plan

komentarz 24 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)

Generalnie:

-> importujesz sqlite3

Ogólnie, zamiast tak się rozpisać, ja bym jeszcze raz podrzucił linka do https://docs.python.org/3.8/library/sqlite3.html - bo ma ładny prosty przykład użycia na samym wierzchu.;)

(Inna sprawa, że to może być ogólnie nieaktualne, jeśli Kubs zdecyduje się na używanie Djangowego ORMa.)

komentarz 24 kwietnia 2020 przez Kubs Mądrala (5,190 p.)
Dziękuję Wam,

@adrian17 sam nie wiem co lepsze - ten sqlite czy DjangORM, po prostu nie mam wiedzy.

Wymyśliłem sobie schemat - skanowanie kodów QR, które przekierowują na stronę do zakładki z informacjami zassanymi z bazy danych. Może to jednak za trudne na początek.

Czyli gdy użytkownik naciska link na stronie to wywołuje się onclick() JS'a. I zaraz potem ten link obsługuje Python? Wybaczcie :)
komentarz 24 kwietnia 2020 przez DawidK Nałogowiec (37,910 p.)
masz racje, dokumentacja i przykład jest bardzo dobrze przygotowana, natomiast w większości przypadków zakładam, że lepiej jest np czasami rozpisać po polsku i wytłumaczyć "od samego początku" o co mi chodzi. Kiedyś męczyłem się kilka ładnych godzin z chińskim shieldem do arduino  ESP8266 i okazało się, że to co było dla chyba każdego oczywiste zostało pominięte w tutorialach - trochę zajęło mi żeby tą oczywistość wyłapać.
1
komentarz 24 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)

sqlite czy DjangORM

To nie są równoważne wybory :) sqlite to baza danych (vs postgresql, mysql etc). Django to framework webowy (vs na przykład Flask), który przy okazji silnie rekomenduje używanie swojego ORMa. Nawet gdybyś używał Flaska lub czegoś zupełnie innego w Pythonie, to wciąż miałbyś wybór między pisaniem gołych SQLi a używaniem innego ORMa, jak SQLAlchemy.

komentarz 24 kwietnia 2020 przez Kubs Mądrala (5,190 p.)

@DawidK, Ok, Dzięki Dawid, spróbuje krok po kroku.

komentarz 24 kwietnia 2020 przez Kubs Mądrala (5,190 p.)
Ok, pomału przeanalizuje ten przykład. Dzięki jak zawsze Adrian

Podobne pytania

+1 głos
2 odpowiedzi 2,311 wizyt
0 głosów
2 odpowiedzi 4,764 wizyt
0 głosów
1 odpowiedź 382 wizyt
pytanie zadane 26 lutego 2021 w SQL, bazy danych przez theemperor Użytkownik (710 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...