Programování

The Ultimate Python Beginner’s Guide

30. října 2021

Obsah

  • Nastavení prostředí
    • Nastavení místního prostředí
    • Jak získat Python
    • Jak nainstalovat Python
    • Instalace systému Windows
    • Instalace Unix/Linux
    • Instalace MAC
    • Nastavení cesty pro Python
    • Nastavení cesty pro Unix/Linux
    • Nastavení cesty pro Windows
  • Proměnné prostředí Pythonu
    • Spuštění Pythonu
  • Základní syntaxe
    • Python identifikátory
    • Příkaz Pythonu
    • Odrážky v Pythonu
    • Komentáře v Pythonu
    • Získávání vstupu
    • Zobrazte výstup
  • Typy proměnných
    • Přiřazení hodnot proměnným
    • Datové typy Pythonu
    • Struny
    • N-tice
    • Seznamy
    • čísla
  • Základní operátoři
    • Operátor přiřazení
    • Bitový operátor
    • Logický operátor
    • Aritmetický operátor
    • Porovnávací operátor
    • Operátor identity
    • Provozovatel členství
  • Rozhodování
    • Pokud prohlášení
    • pokud-jinak
    • Vnořeno pokud
    • If-elif-else-ladder
    • Zkratka if prohlášení
    • Zkratka if-others prohlášení
  • Smyčky
    • Zatímco smyčka
    • Pro Loop
    • Vnořené smyčky
    • Příkazy řízení smyčky
    • Pokračovat v prohlášení
    • Break prohlášení
    • Předat prohlášení
  • čísla
    • Převod typu čísla
    • Funkce náhodných čísel
    • Goniometrické funkce
    • Matematické funkce
  • Struny
    • Vytvoření řetězce
    • Řetězcové speciální operátory
    • Operátory formátování řetězců
    • Únikové postavy
    • Vestavěné řetězcové metody
  • N-tice
    • Přístup k hodnotám v nicích
    • Aktualizace n-tic
    • Základní n-ticové operátory
    • Vestavěné funkce Tuple
    • Indexování a krájení
    • Odstranění n-tice
  • Seznamy
    • Přístup k hodnotám v seznamech
    • Aktualizace seznamů
    • Základní operátory seznamu
    • Vestavěný seznam funkcí a metod
    • Indexování a krájení
    • Odstranit prvek seznamy
  • Slovník
    • Vytvoření slovníku
    • Přidávání prvků do slovníku
    • Odebrání prvků ze slovníku
    • Slovníkové metody Pythonu
  • Datum a čas
    • Time Tuple
    • Časový modul
    • Modul kalendáře
  • Funkce
    • Jak definovat funkci
    • Volání funkce
    • Předat odkazem
    • Mít hodnotu
    • Argumenty funkce
    • Argumenty s proměnnou délkou
    • Povinné argumenty
    • Výchozí argumenty
    • Argumenty klíčových slov
    • Anonymní funkce
  • Moduly
    • Prohlášení o dovozu
    • Výpis z importu
    • Výpis z importu *
    • Lokalizační moduly
    • Funkce locals() a globals().
    • Jmenné prostory a rozsah
    • Funkce dir().
    • Funkce reload().
  • Soubory I/O
    • Otevření souboru
    • Atributy objektu souboru
    • Zavření souboru
    • S prohlášením
    • Metoda zápisu
    • Metoda čtení
    • Metoda rename().
    • Metoda remove().
    • Pozice souboru
  • Výjimky
    • Co je to výjimka?
    • Zpracování výjimky
    • Vyhlášení výjimky
    • Seznam standardních výjimek
    • Uživatelem definované výjimky
    • Tvrzení v Pythonu
  • Třídy a objekty
    • Vytváření tříd
    • Objekty třídy
    • Přístup k atributům
    • Vestavěné atributy třídy
    • Odvoz odpadků
    • Třídní dědičnost
    • Převažující metody
    • Regulární výrazy
    • Funkce zápasu
    • Funkce vyhledávání
    • Modifikátory regulárních výrazů
    • Vzory regulárních výrazů
    • Třídy postav
    • Případy opakování
    • Kotvy
  • Programování CGI
  • Přístup k databázi MySQL
  • sítě
    • Co jsou zásuvky?
    • Zásuvkový modul
    • Internetové moduly Python
  • Odesílání e-mailu
    • Odeslání HTML e-mailu pomocí Pythonu
    • Odesílání příloh jako e-mail
  • Vícevláknové programování
    • Zakládání nového vlákna
    • Modul závitování
    • Synchronizace vláken
    • Vícevláknová prioritní fronta
  • Zpracování XML
    • Co je XML?
    • Architektury a API XML Parser
    • Analýza XML pomocí SAX API
      • Metoda make_parser
      • Metoda analýzy
      • Metoda parseString
  • Programování GUI
    • Tkinter widgety
  • Správa geometrie
  • Doporučené články

Programování CGI

CGI neboli Common Gateway Interface je sada standardů, které definují, jak se informace vyměňují mezi vlastním skriptem a webovým serverem. NCSA v současné době udržuje specifikace CGI.

Procházení webu

Pokud chcete pochopit koncept CGI, zde je příklad. Kliknutím na hypertextový odkaz můžete procházet konkrétní adresu URL nebo webovou stránku.

  • Prohlížeč kontaktuje webový server a požaduje adresu URL.
  • Webový server analyzuje adresu URL a hledá název souboru. Pokud soubor najde, odešle jej zpět do prohlížeče, v opačném případě odešle chybovou zprávu, která označuje, že jste požadovali nesprávný soubor.
  • Webový prohlížeč převezme odpověď z webového serveru a zobrazí přijatý soubor nebo chybovou zprávu.

I když je možné nastavit HTTP server tak, aby při požadavku na soubor v určitém adresáři nebyl soubor odeslán zpět; místo toho se spouští jako program a vše, co tento program vypíše, je odesláno zpět, aby to zobrazil váš prohlížeč.

Tato funkce je známá jako Common Gateway Interface nebo CGI a plány jsou známé jako CGI skripty. CGI programy mohou být Python Script, PERL Script, Shell Script, C nebo C++ program atd.

krajta

HTTP hlavička

Linie Content-type:text/html je součástí hlavičky HTTP, která se odesílá do prohlížeče, aby porozuměl obsahu. Všechny hlavičky HTTP budou v následujícím tvaru

Ano ne Záhlaví Popis
jedenUmístění: URLAdresa URL, která je vrácena, nikoli požadovaná adresa URL. Pole můžete použít k přesměrování požadavku na libovolný soubor.
dvaTyp obsahu:Je to řetězec MIME, který definuje formát vráceného souboru. Například Content-type:text/html
3Poslední změna: DatumDatum úpravy zdroje.
4Vyprší: DatumInformace se dnem stávají neplatnými. Prohlížeč to používá k rozhodnutí, kdy je třeba stránku obnovit.
5Sada cookie: ŘetězecNastavte soubor cookie procházející přes tětiva
6Délka obsahu: NDélka dat se vrací. Prohlížeč použije hodnotu k nahlášení odhadované doby stahování souboru.

Proměnné prostředí CGI

Programy CGI mají přístup k několika proměnným prostředí. Tyto proměnné hrají zásadní roli při psaní jakéhokoli CGI programu.

Ano ne Název proměnné Popis
jeden CONTENT_LENGTH Délka informací dotazu. Je k dispozici pouze pro požadavky POST.
dva TYP OBSAHU Datový typ obsahu. Používá se, když klient odesílá obsah na server. Například nahrání souboru.
3 ŘETĚZEC DOTAZU Informace zakódované v URL jsou odeslány s požadavkem metody GET.
4 PATH_INFO Je to cesta pro skript CGI.
5 HTTP_COOKIE Vrací nastavené soubory cookie ve formě páru hodnot a klíče.
6 REMOTE_HOST Plně kvalifikovaný název hostitele, který požadavek podává. Pokud informace nejsou k dispozici, lze k získání IR adresy použít REMOTE_ADDR. hodnota pro hlášení odhadované doby stahování souboru.
7 SCRIPT_FILENAME Úplná cesta ke skriptu CGI.
8 REQUEST_METHOD Metoda se používá k vytvoření požadavku. Nejběžnějšími metodami jsou POST a GET.
9 SERVER_NAME Název hostitele nebo IP adresa serveru
10 SERVER_SOFTWARE Verze a název softwaru, na kterém server běží.
jedenáct HTTP_USER_AGENT Záhlaví požadavku uživatelského agenta obsahuje informace o uživatelském agentovi, který je původcem požadavku. Je to název webového prohlížeče.
12 REMOTE_ADDR IP adresa vzdáleného hostitele dělá požadavek. Je to užitečné pro protokolování nebo ověřování.
13 SCRIPT_NAME Název CGI skriptu.

metoda GET

Metoda GET je výchozí metodou pro předávání informací z prohlížeče na webový server a vytváří řetězec, který se objeví v umístění vašeho prohlížeče: box. Nikdy byste neměli používat metodu GET, pokud máte heslo nebo jiné citlivé informace. Metoda GET má omezení velikosti: v řetězci požadavku lze odeslat pouze 1024 znaků. Metoda GET odesílá informace pomocí hlavičky QUERY_STRING a bude přístupná ve vašem programu CGI prostřednictvím proměnné prostředí QUERY_STRING.

SYNTAX

|_+_| img 617dd274c490b

VÝSTUP

img 617dd27560edf

metoda POST

POST je metoda požadavku, která je podporována protokolem HTTP používaným na World Wide Web. Metoda POST požaduje, aby webový server přijal data, která jsou uzavřena v těle zprávy požadavku. Používá se při nahrávání souboru nebo při odesílání vyplněného webového formuláře.

SYNTAX

|_+_| img 617dd275b62df

Používání cookies v CGI

Protokol HTTP je bezstavový. U komerčních webových stránek jste povinni udržovat informace o relacích mezi různými stránkami.

V některých situacích je používání souborů cookie nejúčinnějším způsobem sledování a zapamatování preferencí, provizí, nákupů a dalších informací pro lepší zážitek návštěvníků nebo statistiky stránek.

Jak to funguje?

Server odesílá některá data do prohlížeče ve formě cookie. Prohlížeč může přijmout cookie. Pokud je přijat, uloží se jako přímý textový záznam na pevný disk. Nyní, když návštěvník dorazí na jinou stránku, je soubor cookie k dispozici pro načtení. Jakmile je načten, váš server si pamatuje, co bylo uloženo.

Přístup k databázi MySQL

MySQLdb je rozhraní pro připojení k databázovému serveru MySQL z Pythonu. Implementuje Krajta Database API v2.0 a je postaveno na MySQL C API.

Vytváření databázové tabulky

Jakmile je navázáno připojení k databázi, jste připraveni vytvářet tabulky nebo záznamy do databázových tabulek pomocí metody spuštění vytvořeného kurzoru.

img 617dd27621265

Operace INSERT

Operace vložení je vyžadována, když chcete vytvořit záznamy do databázové tabulky.

img 617dd2767f199

Operace READ

READ Operace v jakékoli databázi znamená načtení některých informací z databáze.

Jakmile je navázáno připojení k databázi, jste nastaveni na vytvoření dotazu do této databáze. Můžete použít fetchone() metoda k načtení jednoho záznamu nebo fetchall() metoda k načtení více hodnot z databázové tabulky.

    fetchall()− Načte řádek v sadě výsledků. Pokud jsou některé řádky již extrahovány ze sady výsledků, načte se řádky ze sady výsledků.fetchone()− Načte další řádek sady výsledků dotazu. Výsledná sada je objekt, který se vrátí, když je kurzor použit k dotazu na tabulku.počet řádků− Je to atribut pouze pro čtení a vrací počet řádků, které byly ovlivněny metodou execute().

Operace aktualizace

Operace UPDATE v libovolné databázi znamená aktualizaci záznamů, které jsou v databázi k dispozici.

Operace DELETE

Operace DELETE odstraní některé záznamy z databáze.

Provádění transakcí

Transakce jsou mechanismem, který zajišťuje konzistenci dat.

    Atomicita− Buď se transakce dokončí, nebo se nic nestane.Konzistence− Transakce by měla začít v konzistentním stavu a nechat systém v konzistentním stavu.Izolace− Výsledky transakce nejsou viditelné mimo aktuální transakci.Trvanlivost− Jakmile je transakce potvrzena, účinky jsou konstantní, dokonce i po selhání systému.

Operace COMMIT

Commit je operace, která dává zelený signál do databáze pro dokončení změn a po této operaci nelze žádné změny vrátit zpět.

Například db.commit()

Operace ROLLBACK

Pokud nechcete jednu nebo více změn a chcete tyto změny úplně vrátit zpět, měli byste použít vrácení zpět () metoda.

Například db.rollback()

Odpojení databáze

Chcete-li odpojit připojení k databázi, měli byste použít metodu close().

Pokud je připojení k databázi uzavřeno, všechny nevyřízené transakce jsou vráceny DB. V závislosti na jakýchkoli podrobnostech implementace nižší úrovně DB by však aplikace byla lepší pro explicitní volání commit nebo rollback.

Zpracování chyb

Existuje mnoho důvodů pro chyby. Selhání připojení, chyba syntaxe v provedeném příkazu SQL, je několik příkladů

DB API definuje počet chyb, které mohou existovat v každém databázovém modulu. V následující tabulce jsou uvedeny výjimky.

Ano ne Výjimky Popisy
jeden ChybaJe to základní třída pro chyby. Mělo by to být podtřída Error.
dva Chyba rozhraníPoužívá se pro chyby v databázovém modulu, nikoli v databázi samotné. Měla by být podtřídou Error.
3 VarováníPoužívá se pro nefatální problémy. Mělo by to být podtřída StandardError.
4 DataErrorJe to podtřída DatabaseError, která odkazuje na chyby v datech.
5 Chyba databázePoužívá se pro chybu v databázi. Měla by to být chyba podtřídy
6 OperationalErrorPodtřída DatabaseError odkazuje na chyby, jako je ztráta připojení k databázi. Chyby jsou mimo kontrolu skriptovacího nástroje Pythonu.
7 Interní chybaPodtřída DatabaseError odkazuje na interní chyby v databázovém modulu, jako když kurzor již není aktivní.
8 NotSupportedErrorPodtřída DatabaseError odkazuje na pokus o volání nepodporované funkce.
9 IntegrityErrorPodtřída DatabaseError pro situace, které poškozují relační integritu, jako jsou například omezení jedinečnosti nebo cizí klíče.
10 ProgrammingErrorPodtřída DatabaseError odkazuje na chyby, jako je špatný název tabulky.