Walaupun ringan, penggunaan perpustakaan Botol juga sangat mudah. Saya percaya sebelum membaca artikel ini, pembaca sudah mempunyai pemahaman yang mudah tentang ular sawa. Jadi apakah jenis operasi misteri yang boleh melengkapkan fungsi pelayan dengan ratusan baris kod? Sama-sama kita tunggu dan lihat.
1) Gunakan pip untuk memasang
2) Muat turun fail Botol
https://github.com/bottlepy/bottle/blob/master/bottle.py
Apa yang dipanggil kejayaan segala-galanya Mari kita mulakan dengan Hello World dan pelajari tentang mekanisme asas Botol daripada contoh mudah ini.
Mula-mula kod:
Mula-mula kita mengimport kaedah dapatkan dan jalankan daripada perpustakaan botol.
Seterusnya, kita perlu membina tapak web Mula-mula, kita memerlukan alamat IP dan port ini dilengkapkan dengan menjalankan. alamat mesin ini) dan port 80 (port lalai penyemak imbas):
Jalankan kod python ini HelloWorld.py
seperti ini pelayan tapak web kini berjalan. Buka penyemak imbas dan masukkan 127.0.0.1(:80)
Mesej ralat 404 yang biasa tidak ditemui: '/' . Ini sudah tentu, kerana selain pelayan, laman web juga mempunyai komponen yang sangat penting - halaman web!
Apabila penyemak imbas mengakses alamat IP, ia menghantar permintaan dapatkan kepada IP dan menunggu pemulangan data halaman web kemudian pustaka botol kami merangkum kaedah get untuk melaksanakan proses ini.
Kodnya adalah seperti berikut:
Saya tidak tahu jika anda mengenali simbol @ di atas def penghias dalam sintaks ular sawa Maknanya boleh difahami dengan mudah sebagai menggunakan fungsi get untuk mengubah suai halaman utama. Di sini, @get(‘/’) menghiasi halaman utama ke dalam fungsi yang sepadan apabila penyemak imbas menghantar permintaan GET 127.0.0.1/. Anda boleh melakukan sebarang pemprosesan, dan akhirnya mengembalikan respons kepada permintaan dapatkan. Di sini halaman HelloWorld yang mudah dikembalikan Jika anda menjalankannya semula, anda akan mempunyai kesan ini:
Anda juga boleh menggunakan kaedah templat yang dikapsulkan dalam botol untuk memisahkan. data halaman web. Ditulis dalam fail .tpl, contohnya adalah seperti berikut:
Fungsi run juga mempunyai pemuat semula parameter hidupkan muat semula automatik pelayan web Pelayan akan dimuat semula secara automatik apabila anda membuat sebarang perubahan, membolehkan kemas kini hangat tapak web.
Seperti yang kami gunakan get('/') di atas, ia pada dasarnya adalah laluan statik dan alamat ditentukan sebelum pelayan dijalankan. Penghalaan boleh dilakukan dengan cara ini.
Jadi bagaimana jika ia adalah masa jalan pelayan? Sebagai contoh, mengakses fail pada pelayan laman web tidak boleh dilakukan secara statik Dalam kes ini, kita boleh menggunakan penghalaan dinamik.
Penghalaan dinamik botol dilaksanakan dengan kaedah laluan yang sama, ia juga menggunakan penghias untuk menghiasi fungsi untuk melaksanakan fungsi penghalaan.
Di sini kita melihat sesuatu yang unik muncul dalam parameter penghias: 'nama'. Parameter fungsi yang diubah suai olehnya mempunyai nama yang sama dengan parameter selepas titik bertindih Dalam fungsi, anda boleh menggunakan parameter nama sebagai pembolehubah pemprosesan, dan akhirnya mengembalikan respons.
Penghalaan dinamik boleh memudahkan penghalaan fail. Mungkin terdapat ratusan atau ribuan fail yang disimpan dalam pelayan, dan adalah mustahil untuk bergantung pada alamat statik untuk setiap satu.
Di sini kita dapat melihat fungsi static_file baru, parameter pertama ialah nama fail, parameter kedua ialah alamat direktori akar (iaitu lokasi fail), semasa fail Sistemnya ialah:
--HelloWorld.py
--store1.txt
Akses penyemak imbas untuk mendapatkan
Sudah tentu anda juga boleh meletakkan fail dalam folder, cuma gantikan parameter root dengan alamat folder.
Jika kita ingin melaksanakan fungsi yang lebih kompleks, kita bukan sahaja perlu menggunakan kaedah GET, tetapi juga kaedah POST. Di sini kami menggunakan Borang dalam bahasa HTML untuk menunjukkan respons perpustakaan Botol terhadap permintaan POST.
Mula-mula kami melaksanakan tetingkap untuk memuat naik fail, seperti di atas.
Halaman di sini ialah antara muka penyerahan borang yang ringkas, saya tidak akan memperkenalkannya secara terperinci di sini. >
Kod respons POST berikut adalah seperti berikut:
Import kaedah siaran dan permintaan daripada pustaka Botol.
Sama seperti kaedah dapatkan, gunakan pos untuk menghiasi fungsi respons, dan kemudian gunakan permintaan dalam badan fungsi untuk mendapatkan badan permintaan pos yang diterima oleh pelayan laman web. Kaedah request.forms.get() boleh mengeluarkan rentetan yang sepadan dengan Kunci dalam borang, kaedah request.files.get() boleh mengeluarkan fail yang sepadan dengan Kunci dalam borang, dan kaedah simpan boleh digunakan untuk menyimpan data untuk mencapai muat naik fail.
Seterusnya kami menjalankan ujian:
Selepas mengklik muat naik, kami membuka direktori akar pelayan (yang merupakan lokasi python file), semak dan dapatkan fail tersebut telah berjaya dimuat naik!
5. Ringkasan
Selepas melengkapkan fungsi ini, anda mesti mahu menggunakan botol ke rangkaian Lagipun, jika ia hanya berjalan secara setempat, tapak web akan Apa yang dilakukannya?
Pustaka Bottle juga mempunyai banyak fungsi yang berkuasa, termasuk membaca dan menulis kuki, memasang, menyahpasang dan melumpuhkan pemalam Bottle juga boleh digunakan ke pelayan lain, menjadikannya sangat mudah untuk melaksanakan berbilang-. threading. , fungsi ini sedang menunggu untuk diterokai oleh pembaca!
Atas ialah kandungan terperinci Rangka kerja web ringan Python: Pustaka botol!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!