Programmēšana

Galīgais Python ceļvedis iesācējiem

2021. gada 30. oktobris

Satura rādītājs

  • Vides iestatīšana
    • Vietējās vides iestatīšana
    • Kā iegūt Python
    • Kā instalēt Python
    • Windows instalēšana
    • Unix/Linux instalēšana
    • MAC instalēšana
    • Python ceļa iestatīšana
    • Unix/Linux ceļa iestatīšana
    • Ceļa iestatīšana operētājsistēmai Windows
  • Python vides mainīgie
    • Darbojas Python
  • Pamata sintakse
    • Python identifikatori
    • Python paziņojums
    • Atkāpes Python
    • Komentāri Python
    • Ievades iegūšana
    • Parādiet izvadi
  • Mainīgo veidi
    • Vērtību piešķiršana mainīgajiem
    • Python datu veidi
    • Stīgas
    • Korpusi
    • Saraksti
    • Skaitļi
  • Pamatoperatori
    • Uzdevuma operators
    • Bitu operators
    • Loģiskais operators
    • Aritmētiskais operators
    • Salīdzināšanas operators
    • Identitātes operators
    • Dalības operators
  • Lēmumu pieņemšana
    • Ja paziņojums
    • ja-citādi
    • Ligzdotas, ja
    • Ja-elif-cits-kāpnes
    • Īsraksts ja paziņojums
    • Saīsināts if-else paziņojums
  • Cilpas
    • Kamēr cilpa
    • For Loop
    • Ligzdotas cilpas
    • Cilpas vadības paziņojumi
    • Turpināt paziņojumu
    • Pārtraukuma paziņojums
    • Pass paziņojums
  • Skaitļi
    • Numura veida konvertēšana
    • Izlases skaitļu funkcijas
    • Trigonometriskās funkcijas
    • Matemātiskās funkcijas
  • Stīgas
    • Virknes izveide
    • Stīgu īpašie operatori
    • Virkņu formatēšanas operatori
    • Bēgšanas varoņi
    • Iebūvētās stīgu metodes
  • Korpusi
    • Piekļuve vērtībām Tuples
    • Korežu atjaunināšana
    • Pamata Tuple operatori
    • Iebūvētas Tuple Functions
    • Indeksēšana un sagriešana
    • Korpusa dzēšana
  • Saraksti
    • Piekļuve vērtībām sarakstos
    • Sarakstu atjaunināšana
    • Pamata saraksta operatori
    • Iebūvēts funkciju un metožu saraksts
    • Indeksēšana un sagriešana
    • Dzēst sarakstu elementu
  • Vārdnīca
    • Vārdnīcas veidošana
    • Elementu pievienošana vārdnīcā
    • Elementu noņemšana no vārdnīcas
    • Python vārdnīcu metodes
  • Datums un laiks
    • Laiks Tuple
    • Laika modulis
    • Kalendāra modulis
  • Funkcijas
    • Kā definēt funkciju
    • Funkcijas izsaukšana
    • Iet pēc atsauces
    • Paiet garām vērtībai
    • Funkciju argumenti
    • Mainīga garuma argumenti
    • Nepieciešamie argumenti
    • Noklusējuma argumenti
    • Atslēgvārdu argumenti
    • Anonīmās funkcijas
  • Moduļi
    • Importēšanas paziņojums
    • Importēšanas paziņojums
    • No importēšanas * Paziņojums
    • Moduļu atrašanās vietas noteikšana
    • Locals() un globals() funkcijas
    • Vārdtelpas un tvērums
    • Funkcija dir( ).
    • Pārlādēšanas () funkcija
  • Faili I/O
    • Faila atvēršana
    • Failu objekta atribūti
    • Faila aizvēršana
    • Ar paziņojumu
    • Rakstīšanas metode
    • Lasīšanas metode
    • Pārdēvēt() metode
    • Remove() metode
    • Faila pozīcija
  • Izņēmumi
    • Kas ir izņēmums?
    • Izņēmuma apstrāde
    • Izņēmuma izvirzīšana
    • Standarta izņēmumu saraksts
    • Lietotāja definēti izņēmumi
    • Apgalvojumi Python valodā
  • Klases un objekti
    • Nodarbību veidošana
    • Klases objekti
    • Piekļuve atribūtiem
    • Iebūvētie klases atribūti
    • Atkritumu kolekcija
    • Klases mantojums
    • Ignorējošās metodes
    • Regulāras izteiksmes
    • Saskaņošanas funkcija
    • Meklēšanas funkcija
    • Regulāro izteiksmju pārveidotāji
    • Regulārās izteiksmes modeļi
    • Rakstzīmju klases
    • Atkārtošanās gadījumi
    • Enkuri
  • CGI programmēšana
  • Piekļuve MySQL datu bāzei
  • Tīkli
    • Kas ir ligzdas?
    • Kontaktligzdas modulis
    • Python interneta moduļi
  • E-pasta sūtīšana
    • HTML e-pasta sūtīšana, izmantojot Python
    • Pielikumu nosūtīšana e-pastā
  • Daudzpavedienu programmēšana
    • Sākt jaunu pavedienu
    • Vītņu veidošanas modulis
    • Pavedienu sinhronizēšana
    • Daudzpavedienu prioritātes rinda
  • XML apstrāde
    • Kas ir XML?
    • XML parsētāja arhitektūras un API
    • XML parsēšana ar SAX API
      • Make_parser metode
      • Parsēšanas metode
      • ParseString metode
  • GUI programmēšana
    • Tkinter logrīki
  • Ģeometrijas vadība
  • Ieteicamie raksti

CGI programmēšana

CGI jeb Common Gateway Interface ir standartu kopa, kas nosaka, kā notiek informācijas apmaiņa starp pielāgotu skriptu un tīmekļa serveri. NCSA pašlaik uztur CGI specifikācijas.

Web pārlūkošana

Ja vēlaties izprast CGI jēdzienu, tad šeit ir piemērs. Noklikšķiniet uz hipersaites, lai pārlūkotu noteiktu URL vai tīmekļa lapu.

  • Pārlūkprogramma sazinās ar tīmekļa serveri un pieprasa URL.
  • Web serveris parsē URL un meklē faila nosaukumu. Ja tas atrod failu, tas nosūta to atpakaļ pārlūkprogrammai, pretējā gadījumā tas nosūta kļūdas ziņojumu, kas norāda, ka esat pieprasījis nepareizu failu.
  • Tīmekļa pārlūkprogramma saņem atbildi no tīmekļa servera un parāda saņemto failu vai kļūdas ziņojumu.

Lai gan ir iespējams iestatīt HTTP serveri tā, lai ikreiz, kad tiek pieprasīts fails noteiktā direktorijā, šis fails netiek nosūtīts atpakaļ; tā vietā tā tiek izpildīta kā programma, un neatkarīgi no šīs programmas izvades tiek nosūtīta atpakaļ jūsu pārlūkprogrammai, lai to parādītu.

Šī funkcija ir pazīstama kā Common Gateway Interface vai CGI, un plāni ir pazīstami kā CGI skripti. CGI programmas var būt Python skripts, PERL skripts, Shell skripts, C vai C++ programma utt.

pitons

HTTP galvene

Līnija Satura veids:text/html ir daļa no HTTP galvenes, kas tiek nosūtīta pārlūkprogrammai, lai saprastu saturu. Visa HTTP galvene būs šādā formā

Jā nē Virsraksts Apraksts
viensAtrašanās vieta: URLAtgrieztais URL, nevis pieprasītais URL. Varat izmantot šo lauku, lai novirzītu pieprasījumu uz jebkuru failu.
diviSatura veids:Tā ir MIME virkne, kas nosaka atgrieztā faila formātu. Piemēram, ir Content-type:text/html
3Pēdējās izmaiņas: datumsResursa modifikācijas datums.
4Derīguma termiņš: datumsDatumā informācija kļūst nederīga. Pārlūkprogramma to izmanto, lai izlemtu, kad lapa ir jāatsvaidzina.
5Set-Cookie: virkneIestatīt sīkfailu, kas iziet cauri virkne
6Satura garums: NTiek atgriezts datu garums. Pārlūkprogramma izmanto vērtību, lai ziņotu par faila paredzamo lejupielādes laiku.

CGI vides mainīgie

CGI programmām ir piekļuve dažiem vides mainīgajiem. Šiem mainīgajiem ir būtiska loma, rakstot jebkuru CGI programmu.

Jā nē Mainīgais nosaukums Apraksts
viens CONTENT_LENGTH Vaicājuma informācijas garums. Tas ir pieejams tikai POST pieprasījumiem.
divi CONTENT_TYPE Satura datu tips. To izmanto, kad klients sūta saturu uz serveri. Piemēram, failu augšupielāde.
3 QUERY_STRING URL kodētā informācija tiek nosūtīta ar GET metodes pieprasījumu.
4 PATH_INFO Tas ir CGI skripta ceļš.
5 HTTP_COOKIE Tas atgriež iestatītos sīkfailus vērtību pāra un atslēgas veidā.
6 REMOTE_HOST Pilnībā kvalificēts saimniekdatora nosaukums, kas iesniedz pieprasījumu. Ja informācija nav pieejama, IR adreses iegūšanai var izmantot REMOTE_ADDR. vērtība, lai ziņotu par faila paredzamo lejupielādes laiku.
7 SCRIPT_FILENAME Pilns ceļš uz CGI skriptu.
8 REQUEST_METHOD Pieprasījuma veikšanai tiek izmantota metode. Visizplatītākās metodes ir POST un GET.
9 SERVER_NAME Servera resursdatora nosaukums vai IP adrese
10 SERVER_PROGRAMMATŪRA Programmatūras versija un nosaukums, kurā darbojas serveris.
vienpadsmit HTTP_USER_AGENT User-agent pieprasījuma galvenē ir informācija par lietotāja aģentu, kas ir pieprasījuma avots. Tas ir tīmekļa pārlūkprogrammas nosaukums.
12 REMOTE_ADDR Pieprasījumu veic attālā resursdatora IP adrese. Tas ir noderīgi reģistrēšanai vai autentifikācijai.
13 SCRIPT_NAME CGI skripta nosaukums.

GET metode

GET metode ir noklusējuma metode informācijas pārsūtīšanai no pārlūkprogrammas uz tīmekļa serveri, un tā izveido virkni, kas parādās jūsu pārlūkprogrammas atrašanās vietā: lodziņā. Nekad nevajadzētu izmantot GET metodi, ja jums ir parole vai cita sensitīva informācija. GET metodei ir lieluma ierobežojums: pieprasījuma virknē var nosūtīt tikai 1024 rakstzīmes. Metode GET nosūta informāciju, izmantojot QUERY_STRING galveni, un tai būs pieejama jūsu CGI programmā, izmantojot vides mainīgo QUERY_STRING.

SINTAKSE

|_+_| img 617dd274c490b

IZEJA

img 617dd27560edf

POST metode

POST ir pieprasījuma metode, ko atbalsta HTTP, ko izmanto globālais tīmeklis. POST metode pieprasa, lai tīmekļa serveris pieņemtu datus, kas ir ietverti pieprasījuma ziņojuma pamattekstā. To izmanto, augšupielādējot failu vai iesniedzot aizpildītu tīmekļa veidlapu.

SINTAKSE

|_+_| img 617dd275b62df

Sīkdatņu izmantošana CGI

HTTP protokols ir bezvalsts. Komerciālai vietnei jums ir jāsaglabā sesijas informācija dažādās lapās.

Dažās situācijās sīkfailu izmantošana ir visefektīvākā metode preferenču, komisijas maksu, pirkumu un citas informācijas izsekošanai un iegaumēšanai, lai nodrošinātu labāku apmeklētāju pieredzi vai vietnes statistiku.

Kā tas darbojas?

Serveris nosūta dažus datus pārlūkprogrammai sīkfailu veidā. Pārlūkprogramma var pieņemt sīkfailu. Ja tas tiek pieņemts, tas tiek saglabāts kā tiešs teksta ieraksts cietajā diskā. Tagad, kad apmeklētājs nonāk citā lapā, sīkfails ir pieejams izgūšanai. Kad tas ir izgūts, jūsu serveris atceras to, kas tika saglabāts.

Piekļuve MySQL datu bāzei

MySQLdb ir saskarne savienojuma izveidei ar MySQL datu bāzes serveri no Python. Tā īsteno Python Datu bāzes API v2.0, un tā ir balstīta uz MySQL C API.

Datu bāzes tabulas izveide

Kad datu bāzes savienojums ir izveidots, varat izveidot tabulas vai ierakstus datu bāzes tabulās, izmantojot izveidotā kursora izpildes metodi.

img 617dd27621265

INSERT darbība

Ievietošanas darbība ir nepieciešama, ja vēlaties izveidot ierakstus datu bāzes tabulā.

img 617dd2767f199

LASĪT Darbība

LASĪT Darbība jebkurā datu bāzē nozīmē iegūt kādu informāciju no datu bāzes.

Kad datu bāzes savienojums ir izveidots, jums ir jāveic vaicājums šajā datu bāzē. Jūs varat izmantot atnest () metode, lai iegūtu vienu ierakstu vai atnest() metode vairāku vērtību iegūšanai no datu bāzes tabulas.

    atnest()− Tas ienes rindu rezultātu kopā. Ja dažas rindas jau ir izvilktas no rezultātu kopas, tā izgūst rindas no rezultātu kopas.atnest ()- Tas ienes nākamo vaicājuma rezultātu kopas rindu. Rezultātu kopa ir objekts, kas atgriežas, kad tabulas vaicāšanai tiek izmantots kursors.rindu skaits- Tas ir tikai lasāms atribūts un atgriež to rindu skaitu, kuras ietekmēja execute() metode.

Atjaunināšanas darbība

Darbība UPDATE jebkurā datu bāzē nozīmē datu bāzē pieejamo ierakstu atjaunināšanu.

DZĒŠANA darbība

DELETE darbība izdzēš dažus ierakstus no jūsu datu bāzes.

Darījumu veikšana

Darījumi ir mehānisms, kas nodrošina datu konsekvenci.

    Atomiskums− Vai nu darījums tiek pabeigts, vai arī nekas nenotiek.Konsekvence− Darījumam ir jāsākas konsekventā stāvoklī un jāatstāj sistēma konsekventā stāvoklī.Izolācija− Darījuma rezultāti nav redzami ārpus pašreizējā darījuma.Izturība− Kad darījums ir veikts, sekas ir nemainīgas pat pēc sistēmas kļūmes.

COMMIT operācija

Commit ir darbība, kas dod zaļu signālu datu bāzei par izmaiņu pabeigšanu, un pēc šīs darbības nekādas izmaiņas nevar atsaukt.

Piemēram db.commit()

ATGĀŠANAS darbība

Ja nevēlaties veikt vienu vai vairākas izmaiņas un vēlaties pilnībā atjaunot šīs izmaiņas, izmantojiet atcelšanu. () metodi.

Piemēram db.rollback()

Datu bāzes atvienošana

Lai atvienotu datu bāzes savienojumu, jāizmanto close() metode.

Ja savienojums ar datu bāzi tiek aizvērts, DB atceļ visus nenokārtotos darījumus. Tomēr atkarībā no DB zemāka līmeņa ieviešanas detaļām lietojumprogramma būtu labāka, lai tieši izsauktu commit vai backback.

Apstrādes kļūdas

Kļūdu iemeslu ir daudz. Savienojuma kļūme, sintakses kļūda izpildītā SQL priekšrakstā ir daži piemēri

DB API nosaka kļūdu skaitu, kas var pastāvēt katrā datu bāzes modulī. Nākamajā tabulā ir uzskaitīti izņēmumi.

Jā nē Izņēmumi Apraksti
viens KļūdaTā ir kļūdu bāzes klase. Tam vajadzētu būt Error apakšklasei.
divi Interfeisa kļūdaTo izmanto datu bāzes moduļa kļūdām, nevis pašā datu bāzē. Tam vajadzētu būt apakšklasei Error.
3 BrīdinājumsTo lieto nenāvējošām problēmām. Tam vajadzētu būt apakšklasei StandardError.
4 DataErrorTā ir DatabaseError apakšklase, kas attiecas uz kļūdām datos.
5 Database ErrorTo izmanto datubāzes kļūdai. Tam vajadzētu būt apakšklases kļūdai
6 Darbības kļūdaDatabaseError apakšklase attiecas uz kļūdām, piemēram, savienojuma ar datu bāzi zudumu. Kļūdas nevar kontrolēt Python skripts.
7 Iekšēja kļūdaDatabaseError apakšklase attiecas uz kļūdām, kas ir iekšējās datu bāzes modulī, piemēram, kursors vairs nav aktīvs.
8 NotSupportedErrorDatabaseError apakšklase attiecas uz mēģinājumu izsaukt neatbalstītu funkcionalitāti.
9 Integrity ErrorDatabaseError apakšklase situācijām, kas bojā relāciju integritāti, piemēram, unikalitātes ierobežojumi vai ārējās atslēgas.
10 Programmēšanas kļūdaDatabaseError apakšklase attiecas uz kļūdām, piemēram, nepareizu tabulas nosaukumu.