Programmeerimine

Ultimate Pythoni juhend algajatele

30. oktoober 2021

Sisukord

  • Keskkonna seadistamine
    • Kohaliku keskkonna seadistamine
    • Kuidas Pythonit hankida
    • Kuidas Pythonit installida
    • Windowsi installimine
    • Unixi / Linuxi installimine
    • MAC-i installimine
    • Pythoni tee seadistamine
    • Unixi/Linuxi tee määramine
    • Windowsi tee määramine
  • Pythoni keskkonnamuutujad
    • Pythoni käivitamine
  • Põhiline süntaks
    • Pythoni identifikaatorid
    • Pythoni avaldus
    • Taanded Pythonis
    • Kommentaarid Pythonis
    • Sisestuse saamine
    • Kuva väljund
  • Muutujate tüübid
    • Muutujatele väärtuste määramine
    • Pythoni andmetüübid
    • Stringid
    • Kordad
    • Loendid
    • Numbrid
  • Põhioperaatorid
    • Ülesandeoperaator
    • Bitioperaator
    • Loogiline operaator
    • Aritmeetiline operaator
    • Võrdlusoperaator
    • Identiteedi operaator
    • Liikmelisuse operaator
  • Otsuse tegemine
    • Kui avaldus
    • kui-muidu
    • Pesastatud kui
    • Kui-elif-muidu-redel
    • Lühikiri kui väide
    • Lühike kui-muidu avaldus
  • Silmused
    • Kuigi Loop
    • Loopi jaoks
    • Pesastatud silmused
    • Loop Control avaldused
    • Jätka avaldust
    • Katkestusavaldus
    • Läbimise avaldus
  • Numbrid
    • Numbritüübi teisendamine
    • Juhuslike arvude funktsioonid
    • Trigonomeetrilised funktsioonid
    • Matemaatilised funktsioonid
  • Stringid
    • Stringi loomine
    • Stringi erioperaatorid
    • Stringi vormindamise operaatorid
    • Põgenemistegelased
    • Sisseehitatud stringimeetodid
  • Kordad
    • Juurdepääs väärtustele Tuples
    • Kordate värskendamine
    • Korpuse põhioperaatorid
    • Sisseehitatud mitmekordsed funktsioonid
    • Indekseerimine ja viilutamine
    • Korpuse kustutamine
  • Loendid
    • Juurdepääs väärtustele loendites
    • Nimekirjade värskendamine
    • Põhiloendi operaatorid
    • Sisseehitatud funktsioonide ja meetodite loend
    • Indekseerimine ja viilutamine
    • Kustuta loendite element
  • Sõnastik
    • Sõnastiku koostamine
    • Elementide lisamine sõnastikku
    • Elementide eemaldamine sõnastikust
    • Pythoni sõnastiku meetodid
  • Päev ja aeg
    • Time Tuple
    • Aja moodul
    • Kalendri moodul
  • Funktsioonid
    • Kuidas defineerida funktsiooni
    • Funktsiooni kutsumine
    • Mööda viide
    • Mööda väärtust
    • Funktsiooni argumendid
    • Muutuva pikkusega argumendid
    • Nõutavad argumendid
    • Vaikeargumendid
    • Märksõna argumendid
    • Anonüümsed funktsioonid
  • Moodulid
    • Impordi avaldus
    • Impordi avaldus
    • Impordist * avaldus
    • Moodulite asukoha määramine
    • Funktsioonid locals() ja globals()
    • Nimeruumid ja ulatus
    • Diri( ) funktsioon
    • Reload() funktsioon
  • Failid I/O
    • Faili avamine
    • Failiobjekti atribuudid
    • Faili sulgemine
    • Koos avaldusega
    • Kirjutamise meetod
    • Lugemise meetod
    • Rename() meetod
    • Eemalda () meetod
    • Faili asukoht
  • Erandid
    • Mis on erand?
    • Erandi käsitlemine
    • Erandi tõstmine
    • Standardsete erandite loend
    • Kasutaja määratletud erandid
    • Väited Pythonis
  • Klassid ja objektid
    • Klasside loomine
    • Klassi objektid
    • Juurdepääs atribuutidele
    • Sisseehitatud klassi atribuudid
    • Prügi kogumine
    • Klassipärand
    • Alustavad meetodid
    • Regulaaravaldised
    • Sobitamise funktsioon
    • Otsingu funktsioon
    • Regulaaravaldise teisendajad
    • Regulaaravaldise mustrid
    • Tegelaste klassid
    • Kordusjuhtumid
    • Ankrud
  • CGI programmeerimine
  • Juurdepääs MySQL andmebaasile
  • Võrgud
    • Mis on pistikupesad?
    • Pistikupesa moodul
    • Pythoni Interneti-moodulid
  • E-kirja saatmine
    • HTML-meili saatmine Pythoni abil
    • Manuste saatmine e-kirjana
  • Mitme lõimega programmeerimine
    • Uue lõime alustamine
    • Keermestamise moodul
    • Lõimede sünkroonimine
    • Mitme lõimega prioriteetne järjekord
  • XML-i töötlemine
    • Mis on XML?
    • XML-i parseri arhitektuurid ja API-d
    • XML-i sõelumine SAX API-dega
      • Meetod make_parser
      • Sõelumismeetod
      • ParseString meetod
  • GUI programmeerimine
    • Tkinteri vidinad
  • Geomeetria haldamine
  • Soovitatavad artiklid

CGI programmeerimine

CGI ehk Common Gateway Interface on standardite kogum, mis määratleb, kuidas kohandatud skripti ja veebiserveri vahel teavet vahetatakse. NCSA haldab praegu CGI spetsifikatsioone.

Veebisirvimine

Kui soovite mõista CGI kontseptsiooni, siis siin on näide. Konkreetse URL-i või veebilehe sirvimiseks klõpsake hüperlingil.

  • Brauser võtab ühendust veebiserveriga ja nõuab URL-i.
  • Veebiserver analüüsib URL-i ja otsib failinime. Kui see faili leiab, saadab ta selle tagasi brauserisse, vastasel juhul saadab veateate, mis näitab, et taotlesite vale faili.
  • Veebibrauser võtab vastuse veebiserverist ja kuvab vastuvõetud faili või veateate.

Kuigi HTTP-serverit on võimalik seadistada nii, et iga kord, kui konkreetses kataloogis faili küsitakse, seda faili tagasi ei saadeta; selle asemel käivitatakse see programmina ja kõik selle programmi väljundid saadetakse teie brauseri kuvamiseks tagasi.

Seda funktsiooni nimetatakse Common Gateway Interface ehk CGI-ks ja plaane nimetatakse CGI-skriptideks. CGI-programmid võivad olla Pythoni skript, PERL-skript, Shell-skript, C- või C++-programm jne.

püüton

HTTP päis

Liin Sisutüüp: text/html on osa HTTP-päisest, mis saadetakse sisu mõistmiseks brauserisse. Kõik HTTP-päised on järgmisel kujul

jah ei Päis Kirjeldus
üksAsukoht: URLTagastatud URL, mitte taotletud URL. Välja saate kasutada päringu ümbersuunamiseks mis tahes faili.
kaksSisu tüüp:See on MIME string, mis määrab tagastatava faili vormingu. Näiteks on Content-type:text/html
3Viimati muudetud: kuupäevRessursi muutmise kuupäev.
4Aegub: KuupäevTeave muutub kuupäevaks kehtetuks. Brauser kasutab seda, et otsustada, millal on vaja lehte värskendada.
5Set-Cookie: stringSeadke küpsis, mis on läbinud string
6Sisu pikkus: NAndmete pikkus tagastatakse. Brauser kasutab väärtust faili hinnangulise allalaadimisaja teatamiseks.

CGI keskkonnamuutujad

CGI programmidel on juurdepääs vähestele keskkonnamuutujatele. Need muutujad mängivad mis tahes CGI-programmi kirjutamisel olulist rolli.

jah ei Muutuja nimi Kirjeldus
üks CONTENT_LENGTH Päringu teabe pikkus. See on saadaval ainult POST-i päringute jaoks.
kaks SISU TÜÜP Sisu andmetüüp. Seda kasutatakse siis, kui klient saadab sisu serverisse. Näiteks failide üleslaadimine.
3 QUERY_STRING URL-kodeeritud teave saadetakse GET-meetodi päringuga.
4 PATH_INFO See on CGI-skripti tee.
5 HTTP_COOKIE See tagastab seatud küpsised väärtuspaari ja võtme kujul.
6 REMOTE_HOST Taotluse esitanud hosti täielikult kvalifitseeritud nimi. Kui teave pole saadaval, saab IR-aadressi hankimiseks kasutada REMOTE_ADDR-i. väärtus faili hinnangulise allalaadimisaja kohta.
7 SCRIPT_FILENAME CGI-skripti täielik tee.
8 REQUEST_METHOD Taotluse esitamiseks kasutatakse meetodit. Levinumad meetodid on POST ja GET.
9 SERVER_NAME Serveri hostinimi või IP-aadress
10 SERVER_TARKVARA Tarkvara versioon ja nimi, kus server töötab.
üksteist HTTP_USER_AGENT Kasutajaagendi päringu päis sisaldab teavet päringu algatanud kasutajaagendi kohta. See on veebibrauseri nimi.
12 REMOTE_ADDR Päringu esitab kaughosti IP-aadress. See on kasulik logimiseks või autentimiseks.
13 SCRIPT_NAME CGI skripti nimi.

GET meetod

GET-meetod on vaikemeetod teabe edastamiseks brauserist veebiserverisse ja see loob stringi, mis kuvatakse teie brauseri asukohas: kastis. Te ei tohiks kunagi kasutada GET-meetodit, kui teil on parool või muu tundlikku teavet. GET-meetodil on suuruse piirang: päringu stringis saab saata ainult 1024 tähemärki. Meetod GET saadab teavet päise QUERY_STRING abil ja on teie CGI-programmis juurdepääsetav keskkonnamuutuja QUERY_STRING kaudu.

SÜNTAKS

|_+_| img 617dd274c490b

VÄLJUND

img 617dd27560edf

POST meetod

POST on päringumeetod, mida toetab HTTP, mida kasutab World Wide Web. POST-meetod nõuab, et veebiserver aktsepteeriks päringusõnumi sisusse lisatud andmeid. Seda kasutatakse faili üleslaadimisel või täidetud veebivormi esitamisel.

SÜNTAKS

|_+_| img 617dd275b62df

Küpsiste kasutamine CGI-s

HTTP-protokoll on olekuta. Kommertsveebisaidi puhul peate säilitama seansi teavet erinevatel lehtedel.

Teatud olukordades on küpsiste kasutamine kõige tõhusam viis eelistuste, komisjonitasude, ostude ja muu teabe jälgimiseks ja meeldejätmiseks, et parandada külastajakogemust või saidi statistikat.

Kuidas see töötab?

Server saadab osa andmeid brauserisse küpsise kujul. Brauser võib küpsise vastu võtta. Kui see aktsepteeritakse, salvestatakse see kõvakettale otsetekstikirjena. Nüüd, kui külastaja saabub teisele lehele, on küpsis allalaadimiseks saadaval. Kui see on alla laaditud, jätab teie server salvestatu meelde.

Juurdepääs MySQL andmebaasile

MySQLdb on liides Pythonist MySQL andmebaasiserveriga ühenduse loomiseks. See rakendab Python Andmebaasi API v2.0 ja on üles ehitatud MySQL C API peale.

Andmebaasi tabeli loomine

Kui andmebaasiühendus on loodud, olete valmis andmebaasi tabelitesse tabeleid või kirjeid looma, kasutades loodud kursori täitmismeetodit.

img 617dd27621265

INSERT-operatsioon

Sisestamisoperatsioon on vajalik, kui soovite luua oma kirjed andmebaasi tabelisse.

img 617dd2767f199

LOE Operatsioon

LUGEGE Töötamine mis tahes andmebaasis tähendab teabe hankimist andmebaasist.

Kui andmebaasiühendus on loodud, olete seadistatud tegema sellesse andmebaasi päringu. Saate kasutada toomine() meetod ühe kirje toomiseks või tõmbama () meetod mitme väärtuse toomiseks andmebaasi tabelist.

    tõmbama ()− See toob rea tulemuse komplektis. Kui mõned read on tulemikomplektist juba ekstraheeritud, hangib see read tulemuskomplektist.toomine()- See toob päringu tulemuste komplekti järgmise rea. Tulemuste komplekt on objekt, mis tagastatakse, kui kursorit kasutatakse tabeli päringu tegemiseks.ridade arv− See on kirjutuskaitstud atribuut ja tagastab nende ridade arvu, mida meetod execute() mõjutas.

Värskendusoperatsioon

Operatsioon UPDATE mis tahes andmebaasis tähendab andmebaasis saadaolevate kirjete värskendamist.

Kustutusoperatsioon

Toiming DELETE kustutab teie andmebaasist mõned kirjed.

Tehingute sooritamine

Tehingud on mehhanism, mis tagab andmete järjepidevuse.

    Aatomilisus− Tehing kas lõpetatakse või ei juhtu midagi.Järjepidevus− Tehing peaks algama järjepidevas olekus ja jätma süsteemi ühtsesse olekusse.Isolatsioon− Tehingu tulemused ei ole nähtavad väljaspool jooksvat tehingut.Vastupidavus− Kui tehing on tehtud, on selle mõju püsiv, isegi pärast süsteemi riket.

COMMIT operatsioon

Commit on toiming, mis annab andmebaasile rohelise signaali muudatuste lõpetamiseks ja pärast seda toimingut ei saa muudatusi tagasi pöörata.

Näiteks db.commit()

TAGASI TOIMING

Kui te ei soovi üht või mitut muudatust ja soovite need muudatused täielikult ennistada, peaksite kasutama tagasipööramist () meetod.

Näiteks db.rollback()

Andmebaasi lahtiühendamine

Andmebaasiühenduse katkestamiseks peaksite kasutama close() meetodit.

Kui ühendus andmebaasiga suletakse, tühistab DB kõik pooleliolevad tehingud. Kuid olenevalt DB madalama taseme juurutamise üksikasjadest oleks rakendus parem selgesõnaliselt sidumise või tagasipööramise kutsumiseks.

Käsitsemisvead

Vigadel on palju põhjuseid. Ühenduse tõrge või süntaksiviga käivitatud SQL-lauses on mõned näited

DB API määrab igas andmebaasimoodulis esineda võivate vigade arvu. Järgmises tabelis on loetletud erandid.

jah ei Erandid Kirjeldused
üks VigaSee on vigade baasklass. See peaks alamklass Error.
kaks Liidese vigaSeda kasutatakse vigade korral andmebaasimoodulis, mitte andmebaasis endas. See peaks alamklassi Error.
3 HoiatusSeda kasutatakse mittefataalsete probleemide korral. See peaks alamklassi StandardError.
4 DataErrorSee on DatabaseErrori alamklass, mis viitab andmetes esinevatele vigadele.
5 Andmebaasi vigaSeda kasutatakse andmebaasi vea jaoks. See peaks alamklassi viga
6 Operational ErrorDatabaseErrori alamklass viitab sellistele vigadele nagu andmebaasiga ühenduse katkemine. Vead on väljaspool Pythoni skripti kontrolli.
7 Sisemine vigaDatabaseErrori alamklass viitab andmebaasimooduli sisemistele vigadele, näiteks kursor ei ole enam aktiivne.
8 NotSupportedErrorDatabaseErrori alamklass viitab toetamata funktsioonidele helistamise katsele.
9 Terviklikkuse vigaDatabaseErrori alamklass olukordade jaoks, mis kahjustavad relatsioonilist terviklikkust, näiteks unikaalsuspiirangud või võõrvõtmed.
10 ProgrammeerimisvigaDatabaseErrori alamklass viitab sellistele vigadele nagu vigane tabeli nimi.