Programació

La guia definitiva per a principiants de Python

30 d'octubre de 2021

Taula de continguts

  • Configuració de l'entorn
    • Configuració de l'entorn local
    • Com obtenir Python
    • Com instal·lar Python
    • Instal·lació de Windows
    • Instal·lació Unix/Linux
    • Instal·lació MAC
    • Configuració de Path per a Python
    • Configuració del camí per a Unix/Linux
    • Configuració del camí per a Windows
  • Variables d'entorn de Python
    • Córrer Python
  • Sintaxi bàsica
    • Identificadors Python
    • Declaració de Python
    • Sagnies en Python
    • Comentaris en Python
    • Obtenció d'entrada
    • Mostra la sortida
  • Tipus de variables
    • Assignació de valors a les variables
    • Tipus de dades de Python
    • Cordes
    • Tuples
    • Llistes
    • Nombres
  • Operadors bàsics
    • Operador d'assignació
    • Operador bit a bit
    • Operador lògic
    • Operador aritmètic
    • Operador de comparació
    • Operador d'identitat
    • Operador de membres
  • Presa de decisions
    • Si declaració
    • si una altra cosa
    • Niu si
    • Si-elif-una altra escala
    • Declaració taquigràfica si
    • Declaració taquigràfica if-else
  • Bucles
    • Bucle While
    • For Loop
    • Bucles imbricats
    • Declaracions de control de bucle
    • Continuar declaració
    • Declaració de trencament
    • Passa la declaració
  • Nombres
    • Conversió de tipus de nombre
    • Funcions de nombre aleatori
    • Funcions trigonomètriques
    • Funcions matemàtiques
  • Cordes
    • Creació d'una cadena
    • Operadors especials de cadena
    • Operadors de format de cadena
    • Personatges d'escapament
    • Mètodes de cordes integrats
  • Tuples
    • Accés als valors en tuples
    • Actualització de tuples
    • Operadors bàsics de tuple
    • Funcions de tupla integrades
    • Indexació i tall
    • Esborrant una tupla
  • Llistes
    • Accés als valors de les llistes
    • Actualització de les llistes
    • Operadors de llista bàsics
    • Funcions i mètodes de llista integrats
    • Indexació i tall
    • Suprimeix l'element Llistes
  • Diccionari
    • Creació d'un diccionari
    • Afegir elements en un diccionari
    • Eliminació d'elements del diccionari
    • Mètodes de diccionari Python
  • Data i hora
    • Temps Tuple
    • Mòdul de temps
    • Mòdul Calendari
  • Funcions
    • Com definir una funció
    • Crida a una funció
    • Passar per referència
    • Passar per valor
    • Arguments de funció
    • Arguments de longitud variable
    • Arguments necessaris
    • Arguments per defecte
    • Arguments de paraules clau
    • Funcions anònimes
  • Mòduls
    • Declaració d'importació
    • La declaració d'importació
    • La declaració d'import *
    • Localització de mòduls
    • Les funcions locals() i globals().
    • Espais de noms i abast
    • La funció dir( ).
    • La funció reload().
  • Fitxers I/O
    • Obrint un fitxer
    • Atributs de l'objecte del fitxer
    • Tancant un fitxer
    • Amb Declaració
    • El mètode Write
    • El mètode de lectura
    • El mètode rename().
    • El mètode remove().
    • Posició del fitxer
  • Excepcions
    • Què és una excepció?
    • Gestionar una excepció
    • Plantejant una excepció
    • Llista d'excepcions estàndard
    • Excepcions definides per l'usuari
    • Afirmacions en Python
  • Classes i Objectes
    • Creació de classes
    • Objectes de classe
    • Atributs d'accés
    • Atributs de classe incorporats
    • Recollida d'escombraries
    • Herència de classe
    • Mètodes de substitució
    • Expressions regulars
    • Funció de coincidència
    • Funció de cerca
    • Modificadors d'expressió regular
    • Patrons d'expressió regular
    • Classes de personatges
    • Casos de repetició
    • Àncores
  • Programació CGI
  • Accés a la base de dades MySQL
  • Xarxes
    • Què són els endolls?
    • El mòdul de presa
    • Mòduls d'Internet Python
  • Enviament de correu electrònic
    • Enviament d'un correu electrònic HTML amb Python
    • Enviament de fitxers adjunts com a correu electrònic
  • Programació multifils
    • Començant un fil nou
    • El mòdul Threading
    • Sincronització de fils
    • Cua de prioritats multifils
  • Processament XML
    • Què és XML?
    • Arquitectures d'analitzador XML i API
    • Anàlisi XML amb API SAX
      • El mètode make_parser
      • El mètode parse
      • El mètode parseString
  • Programació GUI
    • Ginys de Tkinter
  • Gestió de la Geometria
  • Articles recomanats

Programació CGI

El CGI o Common Gateway Interface és un conjunt d'estàndards que defineix com s'intercanvia la informació entre un script personalitzat i un servidor web. Actualment, l'NCSA manté les especificacions CGI.

Navegació web

Si voleu entendre el concepte de CGI, aquí teniu un exemple. Feu clic a un hiperenllaç per navegar per un URL o una pàgina web concrets.

  • El navegador es posa en contacte amb el servidor web i demana l'URL.
  • El servidor web analitza l'URL i cerca el nom del fitxer. Si troba el fitxer, l'envia de nou al navegador, en cas contrari, envia un missatge d'error que indica que heu sol·licitat un fitxer incorrecte.
  • El navegador web pren la resposta d'un servidor web i mostra el fitxer rebut o el missatge d'error.

Encara que és possible configurar el servidor HTTP de manera que sempre que es demani un fitxer en un directori específic, aquest fitxer no es retorni; en comptes d'això, s'executa com un programa, i qualsevol cosa que aquest programa produeixi s'envia de tornada perquè es mostri el vostre navegador.

Aquesta funció es coneix com a Common Gateway Interface o CGI, i els plans es coneixen com a scripts CGI. Els programes CGI poden ser un Script Python, Script PERL, Script Shell, programa C o C++, etc.

pitó

Capçalera HTTP

La línia Tipus de contingut: text/html forma part de la capçalera HTTP que s'envia a un navegador per entendre el contingut. Tota la capçalera HTTP tindrà la forma següent

S.No Capçalera Descripció
1Ubicació: URLL'URL que es retorna en lloc de l'URL sol·licitat. Podeu utilitzar el camp per redirigir una sol·licitud a qualsevol fitxer.
2Tipus de contingut:És una cadena MIME que defineix el format del fitxer retornat. Per exemple, és Content-type:text/html
3Última modificació: dataLa data de la modificació del recurs.
4Caducitat: DataLa informació no és vàlida en la data. Un navegador l'utilitza per decidir quan s'ha d'actualitzar una pàgina.
5Set-Cookie: cadenaPosa la galeta passat per la corda
6Durada del contingut: NS'està retornant la longitud de les dades. El navegador utilitza el valor per informar del temps estimat de descàrrega d'un fitxer.

Variables d'entorn CGI

Els programes CGI tenen accés a les poques variables d'entorn. Aquestes variables tenen un paper essencial a l'hora d'escriure qualsevol programa CGI.

S.No Nom variable Descripció
1 CONTENT_LENGTH La longitud de la informació de la consulta. Només està disponible per a les sol·licituds POST.
2 CONTENT_TYPE El tipus de dades del contingut. S'utilitza quan el client envia contingut al servidor. Per exemple, la càrrega de fitxers.
3 QUERY_STRING La informació codificada per URL s'envia amb una sol·licitud del mètode GET.
4 PATH_INFO És el camí per a l'script CGI.
5 HTTP_COOKIE Retorna les galetes establertes en forma de parell de valors i clau.
6 REMOTE_HOST Un nom complet de l'amfitrió que fa la sol·licitud. Si la informació no està disponible, es pot utilitzar REMOTE_ADDR per obtenir l'adreça IR. el valor per informar del temps estimat de descàrrega d'un fitxer.
7 SCRIPT_FILENAME El camí complet a l'script CGI.
8 REQUEST_METHOD El mètode s'utilitza per fer la sol·licitud. Els mètodes més comuns són POST i GET.
9 SERVER_NAME El nom d'amfitrió o l'adreça IP del servidor
10 SERVER_SOFTWARE La versió i el nom del programari on s'executa el servidor.
11 HTTP_USER_AGENT La capçalera de la sol·licitud de l'agent d'usuari conté informació sobre l'agent d'usuari que origina la sol·licitud. És el nom del navegador web.
12 REMOTE_ADDR L'adreça IP de l'amfitrió remot fa la sol·licitud. És útil per al registre o l'autenticació.
13 SCRIPT_NAME El nom de l'script CGI.

Mètode GET

El mètode GET és un mètode predeterminat per passar informació del navegador al servidor web, i produeix una cadena que apareix a la ubicació del vostre navegador: quadre. No hauríeu d'utilitzar mai el mètode GET si teniu una contrasenya o altra informació sensible. El mètode GET té una limitació de mida: només es poden enviar 1024 caràcters en una cadena de sol·licitud. El mètode GET envia informació mitjançant la capçalera QUERY_STRING i es podrà accedir al vostre programa CGI mitjançant la variable d'entorn QUERY_STRING.

SINTAXI

|_+_| img 617dd274c490b

SORTIDA

img 617dd27560edf

Mètode POST

POST és un mètode de sol·licitud compatible amb HTTP utilitzat per la World Wide Web. El mètode POST demana que el servidor web accepti les dades que s'inclouen al cos del missatge de sol·licitud. S'utilitza quan es carrega un fitxer o quan s'envia un formulari web emplenat.

SINTAXI

|_+_| img 617dd275b62df

Ús de galetes en CGI

El protocol HTTP és sense estat. Per a un lloc web comercial, heu de mantenir la informació de la sessió entre diverses pàgines.

En algunes situacions, l'ús de galetes és el mètode més eficaç per rastrejar i recordar preferències, comissions, compres i altra informació per millorar l'experiència dels visitants o les estadístiques del lloc.

Com funciona?

El servidor envia algunes dades al navegador en forma de galeta. El navegador pot acceptar la cookie. Si s'accepta, s'emmagatzema com a registre de text directe al disc dur. Ara, quan un visitant arriba a una altra pàgina, la galeta està disponible per a la seva recuperació. Un cop recuperat, el servidor recorda el que es va emmagatzemar.

Accés a la base de dades MySQL

MySQLdb és una interfície per connectar-se al servidor de bases de dades MySQL des de Python. Implementa el Python API de base de dades v2.0 i està construït sobre l'API MySQL C.

Creació de la taula de bases de dades

Un cop feta una connexió a la base de dades, esteu preparat per crear taules o registres a les taules de la base de dades mitjançant el mètode d'execució del cursor creat.

img 617dd27621265

Operació INSERT

L'operació d'inserció és necessària quan voleu crear els vostres registres en una taula de base de dades.

img 617dd2767f199

Operació LLEGIR

LLEGIR L'operació en qualsevol base de dades significa obtenir informació de la base de dades.

Un cop feta la connexió a la base de dades, esteu preparat per fer una consulta a aquesta base de dades. Podeu utilitzar el fetchone() mètode per obtenir un sol registre o el buscar() mètode per obtenir diversos valors de la taula de la base de dades.

    buscar()− Obté la fila en un conjunt de resultats. Si ja s'han extret algunes files del conjunt de resultats, llavors recupera les files del conjunt de resultats.fetchone()− Obté la següent fila d'un conjunt de resultats de consulta. Un conjunt de resultats és un objecte que retorna quan s'utilitza un cursor per consultar una taula.recompte de files− És un atribut de només lectura i retorna el nombre de files afectades per un mètode execute().

Operació d'actualització

L'operació UPDATE en qualsevol base de dades significa actualitzar els registres, que estan disponibles a la base de dades.

Operació DELETE

L'operació DELETE elimina alguns registres de la vostra base de dades.

Realització de Transaccions

Les transaccions són el mecanisme que garanteix la coherència de les dades.

    Atomicitat− La transacció es completa o no passa res.Coherència− La transacció ha de començar en un estat coherent i deixar el sistema en un estat coherent.Aïllament− Els resultats d'una transacció no són visibles fora de la transacció actual.Durabilitat− Un cop confirmada una transacció, els efectes són constants, fins i tot després d'una fallada del sistema.

Operació COMMIT

Commit és una operació que dóna un senyal verd a la base de dades per finalitzar els canvis, i després d'aquesta operació, cap canvi no es pot revertir.

Per exemple db.commit()

Operació ROLLBACK

Si no voleu un o més canvis i voleu revertir aquests canvis completament, hauríeu d'utilitzar el rollback () mètode.

Per exemple db.rollback()

Desconnexió de la base de dades

Per desconnectar la connexió de la base de dades, hauríeu d'utilitzar el mètode close().

Si es tanca una connexió a una base de dades, la base de dades anul·larà les transaccions pendents. Tanmateix, depenent dels detalls d'implementació de nivell inferior de la base de dades, l'aplicació seria millor per trucar a commit o rollback explícitament.

Maneig d'errors

Hi ha moltes raons per als errors. Un error de connexió, un error de sintaxi en una instrucció SQL executada, són alguns exemples

L'API de base de dades defineix el nombre d'errors que poden existir en cada mòdul de base de dades. La taula següent enumera les excepcions.

S.No Excepcions Descripcions
1 ErrorÉs la classe base per als errors. Hauria de subclassificar Error.
2 InterfaceErrorS'utilitza per a errors al mòdul de la base de dades, no a la base de dades en si. Hauria de subclassificar Error.
3 AvísS'utilitza per a problemes no mortals. Hauria de subclasse StandardError.
4 DataErrorÉs la subclasse de DatabaseError que fa referència als errors de les dades.
5 DatabaseErrorS'utilitza per a l'error a la base de dades. Hauria d'error de subclasse
6 OperationalErrorLa subclasse de DatabaseError fa referència a errors com ara la pèrdua d'una connexió a la base de dades. Els errors estan fora del control del programador de Python.
7 InternalErrorLa subclasse de DatabaseError fa referència a errors interns al mòdul de base de dades, com ara un cursor que ja no està actiu.
8 NotSupportedErrorLa subclasse de DatabaseError fa referència a intentar cridar una funcionalitat no compatible.
9 IntegrityErrorLa subclasse de DatabaseError per a situacions que danyin la integritat relacional, com ara les restriccions d'unicitat o les claus externes.
10 ProgrammingErrorLa subclasse de DatabaseError fa referència a errors com ara el nom de taula incorrecte.