Pisanie skryptów MySQL z Python DB-API

24 Dec 2:10 pm


Original: http://www.kitebird.com/articles/pydbapi.html
Copyright: Paul DuBois

Pisanie skryptów MySQL z Python DB-API

Paul DuBois Katowice
paul@kitebird.com Katowice

Wersja dokumentu: 1,02 Katowice
Ostatnia aktualizacja: 2006-09-17 Katowice

Spis treści

Katowice

Python to jeden z bardziej popularnych języków programowania Otwartych Source,
głównie ze względu na jego własnym natywnej ekspresji, jak również
Różnorodność modułów wsparcia, które są dostępne w celu rozszerzenia jego możliwości.
Jeden z tych modułów jest DB-API, która, jak sama nazwa wskazuje, zapewnia
Interfejs programowania aplikacji baz danych. DB-API jest zaprojektowany
stosunkowo niezależnie od szczegółów konkretnych się z danym
silnik bazy danych, aby pomóc Ci w napisaniu bazy danych dostępu do skryptów
są przenośne pomiędzy silnikami. Katowice

Konstrukcja DB-API jest podobne do stosowanego przez Perl i Ruby moduły DBI
PHP PEAR klasy DB i Java interfejs JDBC: Używa
Dwupoziomowy architektura, w której górny poziom stanowi streszczenie
interfejs, który jest podobny dla wszystkich obsługiwanych silników baz danych,
i niższy poziom składający się z kierowcami dla poszczególnych silników
uchwyt silnika zależne szczegóły. Oznacza to, oczywiście, że w celu
użyć DB-API do pisania skryptów Pythona, musisz mieć sterownik
dla danego systemu bazy danych. MySQL, DB-API zapewnia
dostęp do bazy danych za pomocą sterownika MySQLdb. Ten dokument
rozpoczyna się od instalacji dyskutujemy kierowcy (w przypadku, gdy nie ma
MySQLdb), a następnie przenosi się do pokrycia jak pisać DB-API skryptów.

Instalacja MySQLdb

Katowice

Do pisania skryptów, które używają MySQL DB-API, Python sam musi być
zainstalowany. To prawie na pewno będzie prawdziwe, jeśli używasz
Unix, ale jest mniej prawdopodobne w przypadku systemu Windows. Instalatory zarówno platformy
można znaleźć na stronie Pythona (patrz “Zasoby”
Rozdział na końcu tego dokumentu). Katowice

Upewnij się, że wersja Pythona jest 2.3.4 lub nowszy, i że
moduł MySQLdb jest zainstalowany. Możesz sprawdzić, jak z tych wymogów
uruchamiając Python w trybie interaktywnym z wiersza poleceń polecenia
(Coś jak% na systemie Unix lub C: \> dla Windows) Katowice

   % Python 
   Python 2.4.3 (# 1, Aug 29 2006, 14:45:33)
   [GCC 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)] na linux2
   Wpisz "help", "copyright", "kredyty" lub "Licencja", aby uzyskać więcej informacji.
    >>> Import MySQLdb 

Zakładając, że masz najnowszą wersję Pythona dość i że
wystąpienia błędu podczas wydawania import MySQLdb
oświadczenie, że jesteś gotowy, aby rozpocząć pisanie skryptów bazy danych dostępu
i można przejść do następnej sekcji. Jednakże, jeśli masz
w następstwie błędu, należy uzyskać i zainstalować MySQLdb pierwsze: Katowice

    >>> Import MySQLdb 
   Traceback (most recent call last):
     Plik "", line 1, in?
   ImportError: nr moduł o nazwie MySQLdb

Aby uzyskać MySQLdb, odwiedź “Zasoby”, aby
zobaczyć, gdzie można pobrać rozkład odpowiednią dla swojego systemu.
Pliki wykonywalne mogą dostępne dla danej platformy, można też
zainstalować ze źródeł. Jeśli korzystasz z binarnej dystrybucji, zainstaluj
go za pomocą swojej platformy zwykłą procedurę instalacji pakietu.
Aby zbudować i zainstalować ze źródeł, przejść do katalogu najwyższego poziomu
z MySQLdb dystrybucji i wykonaj następujące polecenia.
(W systemach Unix, jest prawdopodobne, że będziesz musiał uruchomić drugą komendę
jako root , tak, że pliki sterowników mogą być skopiowane do
Instalacja Python.) Łódź

   % Python setup.py budować 
   % Python setup.py install 

Jeśli występują problemy, sprawdź README plik włączone
z MySQLdb dystrybucji.

Krótki DB-API Script

Katowice

Skrypty, że dostęp MySQL przez DB-API używając MySQLdb ogólnie
wykonać następujące czynności: Katowice

  • Importowanie
    modułu MySQLdb
  • Otwiera połączenie do serwera MySQL
  • Składania oświadczeń i pobierać ich wyniki
  • Zamknij
    połączenia z serwerem

Pozostała część tego rozdziału zawiera krótki DB-API skrypt, który ilustruje
podstawowe elementy tych kroków. Późniejsze rozdziały omawiają specyficzne
aspekty pisania scenariuszy bardziej szczegółowo. Łódź
name=TOC_3> <a

Pisanie skryptu

Katowice

Użyj edytora tekstu utwórz plik o nazwie server_version.py
, który zawiera następujący skrypt. Skrypt ten wykorzystuje do MySQLdb
interakcji z serwerem MySQL, choć w dość prymitywny
moda – wszystko co robi to do serwera zapytanie o jego numerze wersji Trójmiasto

# Server_version.py - pobierać i wyświetlać wersję serwera bazy danych

import MySQLdb

conn = MySQLdb.connect (host = “localhost”,
= “tester” użytkownik,
passwd = “testpass”
db = “test”)
kursor conn.cursor = ()
cursor.execute (“SELECT VERSION ()”)
row = cursor.fetchone ()
print “wersję serwera:”, wiersz [0]
cursor.close ()
Conn.Close ()

Import oświadczenie mówi, że Python skrypt potrzebuje
użyć kodu w MySQLdb modułu. Oświadczenie to musi poprzedzać
wszelkie próby nawiązania połączenia z serwerem MySQL. Następnie połączenie
jest ustanowiony przez wywołanie connect () metoda
Kierowca MySQLdb z odpowiednimi parametrami połączenia. Należą
hostname gdzie serwer jest uruchomiony, nazwa użytkownika i hasło
do konta MySQL, oraz nazwę bazy danych, którą
użyć. connect () składnia argumentu lista różni się w zależności
Kierowcy, na MySQLdb, argumenty mogą być podane w
nazwa = wartość format,
które ma tę zaletę, że można je określić w dowolnej kolejności.
server_version.py nawiązuje połączenie z serwerem MySQL
na lokalnym komputerze, by przejść testy bazy danych z
Nazwę użytkownika i hasło tester i testpass : Łódź

   conn = MySQLdb.connect (host = "localhost",
                           = "tester" użytkownik,
                           passwd = "testpass"
                           db = "test")

Jeśli connect () wezwanie się powiedzie, zwraca połączenie
Obiekt, który służy jako podstawa do dalszych interakcji z MySQL.
Jeśli połączenie się nie powiedzie, to podnosi wyjątek. ( Server_version.py
nie obsługi wyjątku, więc błąd w tym momencie kończy się
skrypt. Obsługa błędów znajduje się w dalszej części tego dokumentu.) Łódź

Po obiekt połączenia zostały uzyskane, server_version.py
wywołuje jej kursor () metodą tworzenia kursora obiektu
do przetwarzania instrukcji. Skrypt używa tego kursor do wydawania
SELECT VERSION () oświadczenie, które zwraca
Ciąg zawierający informacje o wersji serwera: Katowice

   kursor conn.cursor = ()
   cursor.execute ("SELECT VERSION ()")
   row = cursor.fetchone ()
   print "wersję serwera:", wiersz [0]
   cursor.close ()

Kursor obiektu execute () Metoda wysyła oświadczenie
do serwera i fetchone () pobiera wiersz jako krotki.
Do zestawienia przedstawionego tutaj krotka zawiera jedną wartość,
jaką drukuje skryptu. (Jeśli nie wiersz jest dostępny, fetchone ()
faktycznie zwróci wartość None , server_version.py
beztrosko zakłada, że ​​to się nie stanie, założenie, że ty
normalnie nie powinny. W późniejszych przykładów, będziemy sobie z tym poradzić
przypadków.) przedmioty Cursor można wydać wiele oświadczeń,
ale server_version.py nie ma już potrzeby kursorem
po uzyskaniu numeru wersji, więc zamyka go. Katowice

Wreszcie skrypt wywołuje obiekt Connection jest blisko ()
Sposób, aby odłączyć się od serwera: Katowice

   Conn.Close ()

Po tym, conn staje się nieważne i nie powinny być używane
dostęp do serwera.

Uruchamianie skryptu

Katowice

Aby wykonać server_version.py skrypt wywołać Pythona
z linii poleceń, i powiedz mu nazwę skryptu. Państwo
powinien zobaczyć coś takiego: wynik

   % Python server_version.py 
   Wersja serwera: 01.05.12-beta-log

Oznacza to, że wersja serwera MySQL 5.1.12; -beta
i -log przyrostki nam stabilność dystrybucji
poziom i że rejestrowanie zapytanie jest włączony. (Możesz zobaczyć inne
przyrostki, niż te pokazane tutaj. Na przykład, jeśli debugowania
włączone, zobaczysz -debug przyrostek). Katowice

Jest możliwe, aby ustawić skrypt tak, że można go uruchomić z nazwy
bez odwoływania Python jawnie. W systemach Unix, dodaj początkowy
#! linia do skryptu, który określa pełną ścieżkę
interpretera Pythona. Ten informuje system, co program
powinien wykonać skrypt. Na przykład, jeśli mieszka w Pythona / usr / bin / python
na komputerze, należy dodać następujące w pierwszej linii skryptu: Katowice

   #! / Usr / bin / python

Następnie użyj chmod , aby skrypt wykonywalnym, a będziesz
być w stanie uruchomić go bezpośrednio: Katowice

   % Chmod + x server_version.py 
   %. / Server_version.py 

(Wiodący “. / ” opowiada swoją interpreter poleceń
wyraźnie, że skrypt znajduje się w bieżącym katalogu.
Wiele kont Unix są ustawione, aby nie przeszukiwać katalog bieżący
patrząc na polecenia.) Łódź

Pod Windows #! linia jest niepotrzebna (chociaż jest to
nieszkodliwa, więc nie trzeba go usunąć, jeśli piszesz skrypt na
systemu Unix, a następnie przenieść go na pole okna). Zamiast tego,
może powołać stowarzyszenie nazwa_pliku aby . py skrypty będą
być związane z Pythonem. Zamiast używać chmod , aby
wykonywalny skrypt, otwórz aplet Opcje folderów w kontrolce
Panel i wybierz swoją kartę Typy plików. Typy plików umożliwia
założyć stowarzyszenie dla plików, które kończą się . py , aby powiedzieć
Okna do ich wykonania w Pythonie. Następnie można wywołać skrypt
wg nazwy: Łódź

   C: \>  server_version.py 

Jeśli zainstalujesz ActiveState Python w systemie Windows, ActiveState
Instalator ustawia stowarzyszenie automatycznie jako część
proces instalacji. Katowice
name=TOC_5> <a

Bardziej rozległe DB-API Script

Katowice

server_version.py ma kilka niedociągnięć. Na przykład,
nie złapać wyjątki lub wskazać, co poszło źle, jeśli
błędu, i nie pozwala na możliwość, że
Oświadczenie to działa może nie zwróciło żadnych wyników. Ta sekcja pokazuje
jak rozwiązać te problemy za pomocą skomplikowanych skryptów, animal.py ,
który wykorzystuje tabelę zawierającą nazwy i kategorii zwierząt Katowice

   UTWÓRZ zwierzę TABLE
   (
     name CHAR (40),
     kategoria CHAR (40)
   )

Jeśli czytać dokument PEAR DB dostępnych w Kitebird
witryna (patrz “Zasoby”), można uznać tę tabelę
a niektóre z oświadczeń wydanych przez animal.py , byli
używane w tym dokumencie, też. Katowice

Animal.py Skrypt zaczyna tak (w tym #!
line, należy zamierzają uruchomić skrypt w systemie Unix) Katowice

   #! / Usr / bin / python
   # Animal.py - tworzenie tabeli na zwierzętach i
# Pobieranie informacji od niego

import sys
import MySQLdb

Jak z server_version.py , import skrypt MySQLdb,
ale również importuje sys do stosowania w module obsługi błędów.
( Animal.py używa sys.exit () , aby powrócić do wskazania 1
nieprawidłowe wypowiedzenie, jeśli wystąpi błąd.) Katowice
name=TOC_6> <a

Obsługa błędów

Katowice

Po zaimportowaniu wymaganych modułów, animal.py ustanawia
połączenie z serwerem za pomocą connect () połączenia.
Aby zezwolić na możliwość błędu połączenia (na przykład,
tak, że można wyświetlić przyczynę awarii), konieczne
złapać wyjątki. Do obsługi wyjątków w Pythonie, połóż
kod w spróbować oświadczenia i zawierać wyjątkiem
klauzula, która zawiera kod obsługi błędów. Zasilania powoduje
sekwencja wygląda tak: Katowice

   spróbuj:
     conn = MySQLdb.connect (host = "localhost",
                             = "tester" użytkownik,
                             passwd = "testpass"
                             db = "test")
   wyjątkiem MySQLdb.Error, e:
     print "Błąd% d:% s"% (e.args [0], e.args [1])
     sys.exit (1)

Wyjątkiem Nazwy klauzula klasę Exception ( MySQLdb.Error
w tym przypadku) w celu uzyskania informacji specyficznych danych błędów
, które mogą zapewnić MySQLdb oraz zmiennej ( e ) w
do przechowywania informacji. Jeśli wyjątek, MySQLdb
sprawia, że ​​te informacje w e.args , dwuelementowy
krotka zawierająca numeryczny kod błędu i ciąg opisujący
error. Wyjątkiem klauzuli pokazano na przykład odbitek
obie wartości i wyjścia. Katowice

Wszelkie oświadczenia związane z bazą danych może być umieszczony w podobnym spróbuj / z wyjątkiem
struktury do pułapki i raport błędów; dla zwięzłości, następujący
dyskusja nie pokazuje kod obsługi wyjątków. (Pełne
Tekst animal.py jest wymieniony w dodatku.) Łódź

Metody wydawanie oświadczeń

Katowice

Następna część animal.py tworzy obiekt i kursora
używa go do wydania oświadczenia, skonfigurować i zapełnić zwierzę
tabela: Katowice

   kursor conn.cursor = ()
   cursor.execute ("DROP TABLE IF EXISTS zwierzę")
   cursor.execute ("" "
       UTWÓRZ zwierzę TABLE
       (
         name CHAR (40),
         kategoria CHAR (40)
       )
     "" ")
   cursor.execute ("" "
       INSERT INTO zwierzęcia (nazwa, kategoria)
       WARTOŚCI
         ("Wąż", "gad"),
         ("Żaba", "płaz"),
         ("Tuna", "ryba"),
         ("Racoon", "ssak")
     "" ")
   print "Liczba rzędów brzmieniu:% d" cursor.rowcount%

Zauważ, że ten kod nie zawiera sprawdzanie błędów. (Pamiętaj, że
zostanie umieszczona w spróbować instrukcja; błędy będą powodować
wyjątki, które zostały złowione i poddane obróbce w odpowiednim wyjątkiem
klauzula, która umożliwia przepływ główny kodeksu czytać płynnie.)
Oświadczenia należy wykonać następujące czynności: Łódź

  • Rzuć zwierzę tabela, jeśli już istnieje, na początek
    z czystym kontem.
  • Utwórz zwierzę tabeli. Katowice
  • Wstawić niektóre dane do tabeli i podać liczbę wierszy
    dodaje. Katowice

Każde oświadczenie jest wydawane przez wywołanie kursor obiektu execute ()
Metoda. Pierwsze dwie instrukcje nie wytwarzają wynik, lecz trzeci
wytwarza liczbę określającą liczbę wierszy umieszczonych. Ilość
jest dostępny w kursora ROWCOUNT atrybutu. (Niektóre
interfejsy bazodanowe świadczenia tej liczby jako wartości zwracanej
Oświadczenie-wykonanie połączenia, ale nie jest to prawdą dla DB-API.) Łódź

Zwierzę stół jest ustawiony w tym miejscu, więc możemy wydać
SELECT do wyciągnięcia informacji z niego. Jak
z wypowiedziami poprzednich SELECT stwierdzenia są
wystawioną przy execute () . Jednak w przeciwieństwie do stwierdzeń takich
jak DROP lub INSERT , SELECT Oświadczenia
wygenerować zestaw wyników, które należy pobrać. Oznacza to, że execute ()
tylko kwestie prywatności, to nie zwraca zestaw wyników.
Możesz użyć fetchone () , aby uzyskać rzędy jeden na raz,
lub fetchAll () , aby je wszystkie na raz. animal.py
używa obu podejść. Oto jak korzystać fetchone ()
row-at-a-czas wyszukiwania: Katowice

   cursor.execute ("SELECT nazwa, kategoria od zwierzęcia")
   a (1):
     row = cursor.fetchone ()
     jeśli wiersz == None:
       złamać
     print "% s,% s"% (row [0], row [1])
   print "Liczba zwracanych wierszy:% d"% cursor.rowcount

fetchone () zwraca następny wiersz wyniku ustawiony jako
krotki, lub wartość None , jeśli nie ma więcej wierszy są dostępne.
Kontrole pętla dla tego i wyjścia, gdy wynik został zestaw
wyczerpane. Na każdy wiersz zwracany krotka zawiera dwie wartości
(To ile kolumn SELECT Oświadczenie wyznaczona),
które animal.py drukuje. Print Oświadczenie pokazano
powyżej dostęp poszczególne elementy krotki. Jednakże, ze względu
są one stosowane w kolejności występowania w krotki, print
Oświadczenie może równie dobrze być napisane tak: Katowice

   print "% s,% s" wiersz%

Po wyświetleniu wyników oświadczenie, skrypt drukuje również
liczbę zwracanych wierszy (dostępny jako wartości ROWCOUNT
atrybut). Katowice

fetchAll () zwraca cały zestaw wyników na raz
jak krotki krotek lub jako pusty krotki jeśli zestaw wyników jest
pusty. Dostęp do poszczególnych krotek wierszy, iterację
wiersz ustawić, że fetchAll () zwraca: Katowice

   cursor.execute ("SELECT nazwa, kategoria od zwierzęcia")
   rows = cursor.fetchall ()
   dla wiersza w wierszach:
     print "% s,% s"% (row [0], row [1])
   print "Liczba zwracanych wierszy:% d"% cursor.rowcount

Ten kod wyświetla liczbę wierszy, korzystając ROWCOUNT ,
tak jak na fetchone () pętla. Innym sposobem określania
wiersz liczyć podczas korzystania fetchAll () jest poprzez
długość wartości, że wraca Trójmiasto

   print "% d wierszy zwróconych"% len (wiersze)

FETCH pętle przedstawione dotąd wiersze pobrać jako krotek. To także
można pobrać wiersze jak słowniki, które umożliwia dostęp do
wartości kolumny według nazwy. Poniższy kod pokazuje, jak to zrobić.
Należy pamiętać, że dostęp do słownika wymaga innego rodzaju kursora,
więc przykład zamyka kursor i uzyskuje nowy, który używa
inna klasa cursor: Katowice

   cursor.close ()
   conn.cursor = kursor (MySQLdb.cursors.DictCursor)
   cursor.execute ("SELECT nazwa, kategoria od zwierzęcia")
   result_set = cursor.fetchall ()
   dla wiersza w result_set:
     print "% s,% s"% (row ["name"], row ["category"])
   print "Liczba zwracanych wierszy:% d"% cursor.rowcount

NULL wartości w zestawie wyników są zwracane jako None
do programu. Katowice

MySQLdb wspiera zdolność zastępczy, który umożliwia
wartości danych wiążą się specjalne znaczniki w ciągu oświadczenie.
To stanowi alternatywę do osadzania wartości bezpośrednio
do rachunku. Mechanizm zastępczy obsługuje dodawanie cytatów
wokół wartości danych, a ucieka żadnych znaków specjalnych
występujących w wartościach. Poniższe przykłady obrazują UPDATE
oświadczenie, że zmiany snake do żółwia , pierwszy
przy wartości literałów, a następnie używając symboli zastępczych. Literal-value
deklaracja wygląda tak: Katowice

   cursor.execute ("" "
         Zwierząt UPDATE SET name = 'żółw'
         WHERE name = 'snake'
       "" ")
   print "Liczba rzędów zaktualizowanych:% d" cursor.rowcount%

Alternatywnie, można wydać taką samą deklarację, używając% s
markery zastępcze i wiążące odpowiednie wartości do nich Trójmiasto

   cursor.execute ("" "
         Zwierząt UPDATE SET name =% s
         WHERE name =% s
       "" ", (" Wąż "," żółw "))
   print "Liczba rzędów zaktualizowanych:% d" cursor.rowcount%

Należy zwrócić uwagę na następujące kwestie dotyczące postaci poprzedniego execute ()
zadzwoń: Katowice

  • Wartość% s marker zastępczy powinien występować tylko raz dla każdego
    Wartość, która ma zostać umieszczona w ciąg instrukcji. Katowice
  • Brak cytaty powinny być umieszczone wokół % s markery; MySQLdb
    Materiały cytaty dla Ciebie jak to konieczne. Katowice
  • Po argument ciąg oświadczenie do Execute () ,
    zapewniają krotki zawierającej wartości, które mają być powiązane zastępczych,
    w kolejności powinny się pojawić w ciągu. Jeśli masz
    tylko jedną wartość x , określić go jako (x,) , aby
    wskazują jednoelementowa krotka.
  • Powiąż Brak Python wartość do symbolu zastępczego, aby wstawić
    SQL NULL wartość w oświadczeniu. Katowice

Po wydaniu oświadczenia, animal.py zamyka kursor,
dopuszcza zmiany i rozłącza się z serwerem: Katowice

   cursor.close ()
   conn.commit ()
   Conn.Close ()

Zasilania obiektu commit () Metoda popełnia wszelkie zaległe
Zmiany w bieżącej transakcji, aby je na stałe w
bazy danych. W DB-API, połączenia zacząć niepełnosprawnych tryb automatycznego zatwierdzania,
więc musisz zadzwonić commit () przed odłączeniem lub zmiany
mogą zostać utracone. Katowice

Jeśli zwierzę tabela tabela MyISAM commit ()
nie ma wpływu: MyISAM jest nietransakcyjny silnik składowania, więc
zmiany w tabelach MyISAM w życie natychmiast, niezależnie od
tryb automatycznego zatwierdzania. Jednakże, jeśli zwierzę używa transakcyjnych
silnik składowania InnoDB, takich jak niewydolność powołać commit ()
wyniki w niejawny wycofywania transakcji po odłączeniu.
Na przykład, jeśli dodasz ENGINE = InnoDB do końca
UTWÓRZ TABLE oświadczenia i usunąć commit ()
inwokacja pod koniec skryptu, przekonasz się, że zwierzę
jest pusty po uruchomieniu skryptu. Katowice

Dla skryptów że tylko pobierać dane, żadne zmiany nie muszą być popełnione
i commit () jest zbędne.

Uwagi Przenośność

Katowice

Jeśli chcesz przenieść się MySQLdb opartego DB-API skrypt do użycia z
innej bazy danych, źródła braku przenośności wystąpić gdziekolwiek
że nazwa sterownika mogą być stosowane: Katowice

  • Import oświadczenie, że importuje moduł sterownika.
    Należy to zmienić, aby zaimportować inny sterownik. Katowice
  • Connect () Połączenie, który łączy się z serwerem bazy danych.
    Connect () metoda jest dostępne poprzez nazwę
    moduły sterownika, więc sterownik Nazwa wymaga zmiany. W
    Ponadto connect () składnia argumentu może wahać
    kierowców. Katowice
  • Obsługa wyjątków. Klasa wyjątek wymieniony w wyjątkiem
    Klauzule odwołuje poprzez nazwisko kierowcy. Katowice

Inny rodzaj braku przenoszenia, który nie wymaga sterownika
Nazwa dotyczy wykorzystania symboli zastępczych. DB-API specyfikacja
pozwala na kilku składni zastępczy, a niektórzy kierowcy używać
składnia różni się od obsługiwanego przez MySQLdb. Katowice
name=TOC_9> <a

Zasoby

Katowice

Skrypty, które są wykorzystywane do przykładów w niniejszym dokumencie mogą być
pobrać z następującej lokalizacji: Łódź

http://www.kitebird.com/articles/
 

Możesz znaleźć następujące dodatkowe środki pomocne przy
Python DB-API i MySQLdb kierowca Katowice

  • Andy śmieciarz, autor modułu MySQLdb, posiada witrynę na Trójmiasto
    http://dustman.net/andy/python/
    

    Ta strona jest najlepszym miejscem do zapoznania się z dokumentacją MySQLdb
    i często zadawane pytania online. Posiada również linki do Debiana i Windows dwójkowym
    dystrybucje. Aby otrzymać kod źródłowy lub Linux prędkość obrotową, odwiedź MySQLdb
    SourceForge repozytorium pod adresem: Katowice

    http://sourceforge.net/projects/mysql-python
     
  • MySQL Cookbook zawiera Python DB-API wśród bazy
    interfejsy programistyczne, że obejmuje: Katowice

       http://www.kitebird.com/mysql-cookbook
      http://www.oreilly.com/catalog/mysqlckbk/
     
  • Strona internetowa Python ma instalatorów dla procesora języka Python,
    powinien być zainstalowany w systemie, który nie ma jeszcze go
    zainstalowane: Katowice

       http://www.python.org/
    
  • Baza danych SIG (Special Interest Group), obszar na Python Web
    strona zawiera dodatkowe informacje, DB-API Trójmiasto

       http://www.python.org/sigs/db-sig/
    
  • Zwierzę tabela używana przez animal.py skrypt
    Jest również stosowany w dokumencie PEAR DB w miejscu Kitebird Trójmiasto

        http://www.kitebird.com/articles/
     

    Można znaleźć to pouczające, aby porównać z tym, że dokument
    jeden, aby zobaczyć jak DB-API i PEAR DB są podobne lub różne w
    ich podejście do dostępu do bazy danych. Łódź

 

Dodatek

Katowice

Pełny kod źródłowy animal.py skrypt jest pokazany
tutaj: Katowice

   #! / Usr / bin / python
   # Animal.py - tworzenie tabeli na zwierzętach i
# Pobieranie informacji od niego

import sys
import MySQLdb

# Połączyć się z serwerem MySQL

spróbuj:
conn = MySQLdb.connect (host = “localhost”,
= “tester” użytkownik,
passwd = “testpass”
db = “test”)
wyjątkiem MySQLdb.Error, e:
print “Błąd% d:% s”% (e.args [0], e.args [1])
sys.exit (1)

# Utworzyć tabelę i wypełnić go na zwierzętach

spróbuj:
kursor conn.cursor = ()
cursor.execute (“DROP TABLE IF EXISTS zwierzę”)
cursor.execute (“” ”
UTWÓRZ zwierzę TABLE
(
name CHAR (40),
kategoria CHAR (40)
)
“” “)
cursor.execute (“” ”
INSERT INTO zwierzęcia (nazwa, kategoria)
WARTOŚCI
(“Wąż”, “gad”),
(“Żaba”, “płaz”),
(“Tuna”, “ryba”),
(“Racoon”, “ssak”)
“” “)
print “Liczba rzędów brzmieniu:% d” cursor.rowcount%

# Wykonaj pobierał pętlę używając fetchone ()

cursor.execute (“SELECT nazwa, kategoria od zwierzęcia”)
a (1):
row = cursor.fetchone ()
jeśli wiersz == None:
złamać
print “% s,% s”% (row [0], row [1])
print “Liczba zwracanych wierszy:% d”% cursor.rowcount

# Wykonaj pobierał pętlę używając fetchAll ()

cursor.execute (“SELECT nazwa, kategoria od zwierzęcia”)
rows = cursor.fetchall ()
dla wiersza w wierszach:
print “% s,% s”% (row [0], row [1])
print “Liczba zwracanych wierszy:% d”% cursor.rowcount

# Wydać oświadczenie, że zmienia nazwę, w tym wartości danych
# Dosłownie w ciąg instrukcji, a następnie zmienić jego nazwę z powrotem
# Za pomocą symboli zastępczych

cursor.execute (“” ”
Zwierząt UPDATE SET name = ‘żółw’
WHERE name = ‘snake’
“” “)
print “Liczba rzędów zaktualizowanych:% d” cursor.rowcount%

cursor.execute (“” ”
Zwierząt UPDATE SET name =% s
WHERE name =% s
“” “, (” Wąż “,” żółw “))
print “Liczba rzędów zaktualizowanych:% d” cursor.rowcount%

# Tworzenie kursora słownika tak, że wartości kolumn
# Może być dostępne dla nazwy, a nie położenia

cursor.close ()
conn.cursor = kursor (MySQLdb.cursors.DictCursor)
cursor.execute (“SELECT nazwa, kategoria od zwierzęcia”)
result_set = cursor.fetchall ()
dla wiersza w result_set:
print “% s,% s”% (row ["name"], row ["category"])
print “Liczba zwracanych wierszy:% d”% cursor.rowcount

cursor.close ()

wyjątkiem MySQLdb.Error, e:
print “Błąd% d:% s”% (e.args [0], e.args [1])
sys.exit (1)

conn.commit ()
Conn.Close ()

Potwierdzenie

Katowice

Oryginalna wersja tego dokumentu została napisana dla NuSphere
Corporation. Obecna wersja jest aktualizowana rewizja
oryginału. Katowice
name=TOC_12> <a

Historia zmian

Katowice

  • 1,00 -. Oryginalna wersja Katowice
  • 1,01, 2003-01-24. – Drobne zmiany Katowice
  • 1,02, 2006-09-17 – Bring aktualizowana dla MySQLdb 1.2.1. Dodaj informację
    o tryb automatycznego zatwierdzania oraz commit () metoda. Łódź

Comments are closed