Pengaturcaraan

Panduan Pemula Ultimate Python

30 Oktober 2021

Isi kandungan

  • Persediaan Persekitaran
    • Persediaan Persekitaran Setempat
    • Bagaimana untuk mendapatkan Python
    • Bagaimana untuk memasang Python
    • Pemasangan Windows
    • Pemasangan Unix/Linux
    • Pemasangan MAC
    • Menyediakan Laluan untuk Python
    • Menetapkan laluan untuk Unix/Linux
    • Menetapkan laluan untuk Windows
  • Pembolehubah Persekitaran Python
    • Menjalankan Python
  • Sintaks Asas
    • Pengecam Python
    • Kenyataan Python
    • Inden dalam Python
    • Komen dalam Python
    • Mendapatkan Input
    • Paparkan Output
  • Jenis Pembolehubah
    • Menetapkan Nilai kepada Pembolehubah
    • Jenis Data Python
    • rentetan
    • Tuple
    • Senarai
    • Nombor
  • Operator Asas
    • Operator Tugasan
    • Operator bitwise
    • Operator logik
    • Operator Aritmetik
    • Operator perbandingan
    • Pengendali Identiti
    • Operator Keahlian
  • Membuat keputusan
    • Jika kenyataan
    • jika tidak
    • Bersarang jika
    • Jika-elif-lain-tangga
    • Penyataan ringkas jika
    • Penyataan if-else ringkasan
  • gelung
    • Manakala Gelung
    • Untuk Gelung
    • Gelung Bersarang
    • Kenyataan Kawalan Gelung
    • Sambung kenyataan
    • Penyataan putus
    • Penyata lulus
  • Nombor
    • Penukaran Jenis Nombor
    • Fungsi Nombor Rawak
    • Fungsi trigonometri
    • Fungsi Matematik
  • rentetan
    • Mencipta rentetan
    • Pengendali Khas Rentetan
    • Operator Pemformatan Rentetan
    • Watak Melarikan Diri
    • Kaedah Rentetan Terbina Dalam
  • Tuple
    • Mengakses Nilai dalam Tuples
    • Mengemas kini tupel
    • Pengendali Tuple asas
    • Dibina dalam Fungsi Tuple
    • Pengindeksan dan Penghirisan
    • Memadam tuple
  • Senarai
    • Mengakses Nilai dalam Senarai
    • Mengemas kini Senarai
    • Pengendali Senarai Asas
    • Fungsi dan Kaedah Senarai Terbina dalam
    • Pengindeksan dan Penghirisan
    • Padamkan elemen Senarai
  • Kamus
    • Mencipta kamus
    • Menambah elemen dalam kamus
    • Mengalih keluar elemen daripada kamus
    • Kaedah kamus Python
  • Tarikh dan masa
    • Time Tuple
    • Modul Masa
    • Modul Kalendar
  • Fungsi
    • Bagaimana untuk menentukan fungsi
    • Memanggil fungsi
    • Lulus dengan rujukan
    • Lulus mengikut nilai
    • Hujah fungsi
    • Argumen panjang boleh ubah
    • Hujah yang diperlukan
    • Hujah lalai
    • Hujah kata kunci
    • Fungsi Tanpa Nama
  • Modul
    • Penyata Import
    • Penyata dari import
    • Penyata daripada import *
    • Mengesan Modul
    • Fungsi locals() dan globals().
    • Ruang nama dan Skop
    • Fungsi dir( )
    • Fungsi muat semula().
  • Fail I / O
    • Membuka fail
    • Atribut objek fail
    • Menutup fail
    • Dengan Kenyataan
    • Kaedah Tulis
    • Kaedah membaca
    • Kaedah namakan semula().
    • Kaedah remove().
    • Kedudukan fail
  • Pengecualian
    • Apakah Pengecualian?
    • Mengendalikan pengecualian
    • Menimbulkan pengecualian
    • Senarai pengecualian standard
    • Pengecualian yang ditakrifkan pengguna
    • Penegasan dalam Python
  • Kelas dan Objek
    • Mencipta kelas
    • Objek Kelas
    • Mengakses Atribut
    • Atribut kelas terbina
    • Kutipan sampah
    • Warisan Kelas
    • Kaedah Mengatasi
    • Ungkapan Biasa
    • Fungsi padan
    • Fungsi carian
    • Pengubah Ubah Ungkapan Biasa
    • Corak Ekspresi Biasa
    • Kelas Watak
    • Kes Ulangan
    • sauh
  • Pengaturcaraan CGI
  • Akses Pangkalan Data MySQL
  • Rangkaian
    • Apakah Soket?
    • Modul soket
    • Modul Internet Python
  • Menghantar E-mel
    • Menghantar e-mel HTML menggunakan Python
    • Menghantar Lampiran sebagai E-mel
  • Pengaturcaraan Multithread
    • Memulakan benang baru
    • Modul Threading
    • Menyegerakkan Benang
    • Barisan Keutamaan Berbilang Benang
  • Pemprosesan XML
    • Apakah XML?
    • Senibina dan API Penghurai XML
    • Menghuraikan XML dengan API SAX
      • Kaedah make_parser
      • Kaedah parse
      • Kaedah parseString
  • Pengaturcaraan GUI
    • Widget Tkinter
  • Pengurusan Geometri
  • Artikel yang Disyorkan

Pengaturcaraan CGI

CGI atau Common Gateway Interface ialah satu set piawaian yang mentakrifkan cara maklumat ditukar antara skrip tersuai dan pelayan web. NCSA pada masa ini mengekalkan spesifikasi CGI.

Pelayaran Web

Jika anda ingin memahami konsep CGI, maka inilah contohnya. Klik hiperpautan untuk menyemak imbas URL atau halaman web tertentu.

  • Penyemak imbas menghubungi pelayan web, dan ia memerlukan URL.
  • Pelayan Web menghuraikan URL, dan ia mencari nama fail. Jika ia menjumpai fail itu kemudian ia menghantarnya kembali ke penyemak imbas, jika tidak, ia menghantar mesej ralat yang menunjukkan bahawa anda meminta fail yang salah.
  • Pelayar web mengambil respons daripada pelayan web dan memaparkan sama ada fail yang diterima atau mesej ralat.

Walaupun adalah mungkin untuk menetapkan pelayan HTTP supaya setiap kali fail dalam direktori tertentu diminta fail itu tidak dihantar semula; sebaliknya ia dilaksanakan sebagai program, dan apa sahaja output program itu dihantar semula untuk dipaparkan oleh penyemak imbas anda.

Fungsi ini dikenali sebagai Antara Muka Gerbang Biasa atau CGI, dan rancangannya dikenali sebagai skrip CGI. Program CGI boleh menjadi Skrip Python, Skrip PERL, Skrip Shell, program C atau C++, dsb.

ular sawa

Pengepala HTTP

Garisan itu Jenis kandungan:teks/html adalah sebahagian daripada pengepala HTTP yang dihantar ke penyemak imbas untuk memahami kandungan. Semua pengepala HTTP akan berada dalam bentuk berikut

Ya tidak Kepala Penerangan
satuLokasi: URLURL yang dikembalikan dan bukannya URL yang diminta. Anda boleh menggunakan medan untuk mengubah hala permintaan ke mana-mana fail.
duaJenis kandungan:Ia adalah rentetan MIME yang mentakrifkan format fail yang dikembalikan. Contohnya ialah Content-type:text/html
3Terakhir diubah suai: TarikhTarikh pengubahsuaian sumber.
4Tamat tempoh: TarikhMaklumat menjadi tidak sah pada tarikh tersebut. Penyemak imbas menggunakan ini untuk memutuskan bila halaman perlu dimuat semula.
5Set-Cookie: StringTetapkan kuki yang dilalui melalui tali
6Panjang kandungan: NPanjang data sedang dikembalikan. Penyemak imbas menggunakan nilai untuk melaporkan anggaran masa muat turun untuk fail.

Pembolehubah Persekitaran CGI

Program CGI mempunyai akses kepada beberapa pembolehubah persekitaran. Pembolehubah ini memainkan peranan penting semasa menulis sebarang program CGI.

Ya tidak Nama boleh ubah Penerangan
satu CONTENT_LENGTH Panjang maklumat pertanyaan. Ia tersedia hanya untuk permintaan POST.
dua JENIS KANDUNGAN Jenis data kandungan. Ia digunakan apabila pelanggan menghantar kandungan ke pelayan. Contohnya, muat naik fail.
3 QUERY_STRING Maklumat yang dikodkan URL dihantar dengan permintaan kaedah GET.
4 PATH_INFO Ia adalah laluan untuk skrip CGI.
5 HTTP_COOKIE Ia mengembalikan kuki yang ditetapkan dalam bentuk pasangan nilai dan kunci.
6 REMOTE_HOST Nama hos yang layak sepenuhnya yang membuat permintaan. Jika maklumat tidak tersedia, maka REMOTE_ADDR boleh digunakan untuk mendapatkan alamat IR. nilai untuk melaporkan anggaran masa muat turun untuk fail.
7 SCRIPT_FILENAME Laluan penuh ke skrip CGI.
8 REQUEST_METHOD Kaedah digunakan untuk membuat permintaan. Kaedah yang paling biasa ialah POST dan GET.
9 NAMA PELAYAN Nama hos atau Alamat IP pelayan
10 SERVER_SOFTWARE Versi dan nama perisian tempat pelayan sedang berjalan.
sebelas HTTP_USER_AGENT Pengepala permintaan ejen pengguna mengandungi maklumat tentang ejen pengguna yang menghasilkan permintaan. Ia adalah nama pelayar web.
12 REMOTE_ADDR Alamat IP hos jauh membuat permintaan. Ia berguna untuk pengelogan atau pengesahan.
13 SCRIPT_NAME Nama skrip CGI.

kaedah GET

Kaedah GET ialah kaedah lalai untuk menghantar maklumat daripada penyemak imbas ke pelayan web, dan ia menghasilkan rentetan yang muncul di lokasi penyemak imbas anda: kotak. Anda tidak boleh menggunakan kaedah GET jika anda mempunyai kata laluan atau maklumat sensitif lain. Kaedah GET mempunyai had saiz: hanya 1024 aksara boleh dihantar dalam rentetan permintaan. Kaedah GET menghantar maklumat menggunakan pengepala QUERY_STRING dan boleh diakses dalam Program CGI anda melalui pembolehubah persekitaran QUERY_STRING.

SINTAKSIS

|_+_| img 617dd274c490b

PENGELUARAN

img 617dd27560edf

kaedah POST

POST ialah kaedah permintaan yang disokong oleh HTTP yang digunakan oleh World Wide Web. Kaedah POST meminta pelayan web menerima data yang disertakan dalam badan mesej permintaan. Ia digunakan semasa memuat naik fail atau semasa menyerahkan borang web yang lengkap.

SINTAKSIS

|_+_| img 617dd275b62df

Menggunakan Kuki dalam CGI

Protokol HTTP adalah tanpa kewarganegaraan. Untuk laman web komersial, anda dikehendaki mengekalkan maklumat sesi di antara pelbagai halaman.

Dalam sesetengah situasi, menggunakan kuki ialah kaedah yang paling berkesan untuk menjejak dan mengingati keutamaan, komisen, pembelian dan maklumat lain untuk pengalaman pelawat atau statistik tapak yang lebih baik.

Bagaimanakah ia berfungsi?

Pelayan menghantar beberapa data ke penyemak imbas dalam bentuk kuki. Penyemak imbas mungkin menerima kuki. Jika ia diterima, maka ia disimpan sebagai rekod teks lurus pada cakera keras. Kini, apabila pelawat tiba di halaman lain, kuki itu tersedia untuk diambil semula. Sebaik sahaja ia diambil, pelayan anda mengingati apa yang disimpan.

Akses Pangkalan Data MySQL

MySQLdb ialah antara muka untuk menyambung ke pelayan pangkalan data MySQL daripada Python. Ia melaksanakan Ular sawa Pangkalan Data API v2.0 dan dibina di atas MySQL C API.

Mencipta Jadual Pangkalan Data

Setelah sambungan pangkalan data dibuat, anda sudah bersedia untuk mencipta jadual atau rekod ke dalam jadual pangkalan data dengan menggunakan kaedah laksana kursor yang dibuat.

img 617dd27621265

Operasi INSERT

Operasi sisip diperlukan apabila anda ingin mencipta rekod anda ke dalam jadual pangkalan data.

img 617dd2767f199

BACA Operasi

BACA Operasi dalam mana-mana pangkalan data bermaksud untuk mengambil beberapa maklumat daripada pangkalan data.

Setelah sambungan pangkalan data dibuat, anda ditetapkan untuk membuat pertanyaan ke dalam pangkalan data ini. Anda boleh menggunakan fetchone() kaedah untuk mengambil rekod tunggal atau fetchall() kaedah untuk mengambil berbilang nilai daripada jadual pangkalan data.

    fetchall()− Ia mengambil baris dalam set hasil. Jika beberapa baris telah diekstrak daripada set hasil, maka ia mendapatkan semula baris daripada set hasil.fetchone()− Ia mengambil baris seterusnya set hasil pertanyaan. Set hasil ialah objek yang kembali apabila kursor digunakan untuk menanyakan jadual.bilangan baris− Ia adalah atribut baca sahaja dan mengembalikan bilangan baris yang dipengaruhi oleh kaedah execute().

Kemas kini Operasi

Operasi KEMASKINI dalam mana-mana pangkalan data bermaksud untuk mengemas kini rekod, yang tersedia dalam pangkalan data.

PADAM Operasi

Operasi DELETE memadam beberapa rekod daripada pangkalan data anda.

Menjalankan Transaksi

Transaksi ialah mekanisme yang memastikan ketekalan data.

    Atomiti− Sama ada transaksi selesai atau tiada apa yang berlaku.Konsisten− Transaksi harus bermula dalam keadaan yang konsisten dan meninggalkan sistem dalam keadaan yang konsisten.Pengasingan− Keputusan transaksi tidak dapat dilihat di luar transaksi semasa.Ketahanan− Sebaik sahaja transaksi dilakukan, kesannya adalah tetap, walaupun selepas kegagalan sistem.

Operasi KOMIT

Commit ialah operasi yang memberikan isyarat hijau kepada pangkalan data untuk memuktamadkan perubahan, dan selepas operasi ini, tiada perubahan boleh dikembalikan semula.

Contohnya db.commit()

Operasi ROLLBACK

Jika anda tidak mahu satu atau lebih perubahan dan anda mahu mengembalikan semula perubahan tersebut sepenuhnya, maka anda harus menggunakan rollback () kaedah.

Contohnya db.rollback()

Memutuskan sambungan Pangkalan Data

Untuk memutuskan sambungan pangkalan data, anda harus menggunakan kaedah close().

Jika sambungan ke pangkalan data ditutup maka sebarang urus niaga tertunggak akan ditarik balik oleh DB. Walau bagaimanapun, bergantung pada mana-mana butiran pelaksanaan peringkat rendah DB, aplikasi adalah lebih baik untuk memanggil commit atau rollback secara eksplisit.

Mengendalikan Ralat

Terdapat banyak sebab untuk kesilapan. Kegagalan sambungan, ralat sintaks dalam pernyataan SQL yang dilaksanakan, adalah beberapa contoh

API DB mentakrifkan bilangan ralat yang mungkin wujud dalam setiap modul pangkalan data. Jadual berikut menyenaraikan pengecualian.

Ya tidak Pengecualian Penerangan
satu ralatIa adalah kelas asas untuk ralat. Ia sepatutnya Ralat subkelas.
dua Ralat AntaramukaIa digunakan untuk ralat dalam modul pangkalan data, bukan pangkalan data itu sendiri. Ia sepatutnya Ralat subkelas.
3 AmaranIa digunakan untuk masalah yang tidak membawa maut. Ia sepatutnya mensubkelaskan StandardError.
4 DataErrorIa adalah subkelas DatabaseError yang merujuk kepada ralat dalam data.
5 Ralat Pangkalan DataIa digunakan untuk ralat dalam pangkalan data. Ia sepatutnya ralat subkelas
6 OperationalErrorSubkelas DatabaseError merujuk kepada ralat seperti kehilangan sambungan ke pangkalan data. Ralat adalah di luar kawalan skrip Python.
7 Masalah dalamanSubkelas DatabaseError merujuk kepada ralat dalaman modul pangkalan data, seperti kursor tidak lagi aktif.
8 NotSupportedErrorSubkelas DatabaseError merujuk kepada cuba memanggil fungsi yang tidak disokong.
9 IntegrityErrorSubkelas DatabaseError untuk situasi yang merosakkan integriti hubungan, seperti kekangan keunikan atau kunci asing.
10 Ralat PengaturcaraanSubkelas DatabaseError merujuk kepada ralat seperti nama jadual buruk.