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.

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ó |
1 | Ubicació: URL | L'URL que es retorna en lloc de l'URL sol·licitat. Podeu utilitzar el camp per redirigir una sol·licitud a qualsevol fitxer. |
2 | Tipus de contingut: | És una cadena MIME que defineix el format del fitxer retornat. Per exemple, és Content-type:text/html |
3 | Última modificació: data | La data de la modificació del recurs. |
4 | Caducitat: Data | La informació no és vàlida en la data. Un navegador l'utilitza per decidir quan s'ha d'actualitzar una pàgina. |
5 | Set-Cookie: cadena | Posa la galeta passat per la corda |
6 | Durada del contingut: N | S'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
|_+_|
SORTIDA

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
|_+_|
Ú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.

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

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.
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.
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 | InterfaceError | S'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ís | S'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 | DatabaseError | S'utilitza per a l'error a la base de dades. Hauria d'error de subclasse |
6 | OperationalError | La 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 | InternalError | La 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 | NotSupportedError | La subclasse de DatabaseError fa referència a intentar cridar una funcionalitat no compatible. |
9 | IntegrityError | La subclasse de DatabaseError per a situacions que danyin la integritat relacional, com ara les restriccions d'unicitat o les claus externes. |
10 | ProgrammingError | La subclasse de DatabaseError fa referència a errors com ara el nom de taula incorrecte. |