Teks asli: http://www.devshed.com/c/a/Python/Karrigell-for-Python/
Karena python tidak dirancang khusus untuk pengembangan web, banyak pengguna python sekarang mengembangkan program yang memungkinkan python berjalan di kerangka kerja web. Karrigell adalah salah satu dari sekian banyak kerangka python/web saat ini. Artikel ini akan memberikan pengenalan singkat tentang Karrigell.
Pendahuluan
Karrigell adalah kerangka kerja python/web yang kuat dan fleksibel yang menyediakan berbagai solusi untuk pengembangan web yang terpenting, instalasi dan penggunaannya sangat sederhana. Bahkan pemula python tidak akan bingung saat menggunakan Karrigell, dan Karrigell tidak membatasi beberapa fitur python karena strukturnya yang sederhana. Ia menyediakan Anda dapat menggunakan server web Anda sendiri untuk menyelesaikan pekerjaan , tetapi juga sangat mudah untuk bekerja dengan server web lain (seperti Apache), jadi jika Anda memilih Karrigell, Anda masih dapat menggunakan server web yang telah Anda gunakan sebelumnya.
Artikel ini akan dimulai dari Karrigell Mari kita mulai dengan instalasi dan memperkenalkan beberapa fitur penting dari Karrigell.
Menginstal Karrigell
Seperti yang telah disebutkan di atas, instalasi Karrigell tidak merepotkan sama sekali. Langkah pertama yang perlu Anda lakukan adalah mendownload Karrigell terbaru dari SourceForge direktori yang mudah ditemukan. Kemudian klik dua kali Karrigell.py untuk memulai server web bawaan Karrigell. Jika Anda tidak ingin menggunakan Karrigell dengan server web lain sekarang, instalasi Karrigell berakhir di
sini siapkan server web Anda untuk berintegrasi dengan Karrigell, mari kita ambil apache sebagai contoh. Sekarang kita membutuhkan Karrigell untuk berjalan di latar belakang apache, sehingga apache akan mengirimkan permintaan yang relevan ke Karrigell
Karena Apache biasanya berjalan pada port 80, Anda perlu mengatur port lain yang berjalan untuk Karrigell. Ada dua cara untuk mencapai tujuan ini. Salah satunya adalah dengan menggunakan baris perintah untuk menyelesaikannya, atau Anda dapat mengubah file konfigurasi Karrigell terlebih dahulu lihat caranya Menggunakan baris perintah, kita akan menjalankan Karrigell pada port 8080.
C:Karrigell>Karrigell.py -P 8080
Kedua, Anda perlu mencari Karrigell.ini, lalu menambahkan kalimat
port=8080
Sekarang Anda perlu mengkonfigurasi apache untuk mentransfer yang relevan Permintaan dialihkan ke Karrigell. Secara umum, Anda ingin Apache menangani permintaan file statis apa pun, seperti php. Anda dapat berbagi jalur yang sama dengan Apache, atau Anda dapat mengatur jalur terpisah
memerlukan Apache untuk meneruskan permintaan ke Karrigell, Anda perlu menambahkan yang berikut ini ke filehttpd.conf
Apache
Aturan Penulisan Ulang ^/(.*).py(.*) http://localhost:8080/$1.py$2 [L,P]
Aturan Penulisan Ulang ^/(.*).ks(.*) http://localhost:8080/$1.ks$2 [L,P]
Aturan Penulisan Ulang ^/(.*).hip(.*) http://localhost:8080/$1.hip$2 [L,P]
RewriteRule ^/(.*).pih(.*) http://localhost:8080/$1.pih$2 [P]
Jika mau, Anda dapat mengatur semua permintaan file tertentu untuk diteruskan ke Karrigell Di artikel ini , kita akan menggunakan jalur testarea, jadi kita atur httpd.conf seperti ini:
RewriteEngine On
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]
Tentu saja Anda dapat melakukan ini:
RewriteEngine On
Aturan Penulisan Ulang ^/testarea/(.*).py(.*)
http://localhost:8080/testarea/$1.py$2 [L,P]
Aturan Penulisan Ulang ^/testarea/(.*).ks(.*)
http://localhost:8080/testarea/$1.ks$2 [L,P]
Aturan Penulisan Ulang ^/testarea/(.*).hip(.*)
http://localhost:8080/testarea/$1.hip$2 [L,P]
Aturan Penulisan Ulang ^/testarea/(.*).pih(.*)
http://localhost:8080/testarea/$1.pih$2 [P]
Skrip dan Layanan
Skrip Python dan layanan Karrigell akan menjadi dua konsep yang paling mudah diakses oleh pengembang python yang menggunakan Karrigell. Skrip Python adalah skrip python, dan pengembang menggunakan Pernyataan cetak menampilkan konten ke browser pengguna. Jika Anda belum memahaminya, buat direktori testarea, lalu kita akan mulai membuat skrip Python pertama kita. Buat file baru test.py:
print "<center>"
cetak "Halo!"
cetak "<br /><br />"
print "Karrigell telah dikonfigurasi dan berfungsi."
print "</center>"
Buka file ini di browser. Jika Karrigell Anda telah diatur dengan benar sebelumnya, Anda akan melihat hasilnya.
Skrip Python juga dapat dengan mudah menggunakan formulir. Mari kita buat halaman sederhana di mana pengguna dapat memasukkan nama mereka. Buat file baru askname.py:
if QUERY.has_key ( "name" ):
cetak "Nama Anda", _nama + "."
kalau tidak:
print "Siapa nama anda?<br />"
cetak "<formulir>"
print "<tipe masukan='teks' nama='nama' /><br />"
print "<input type='kirim' nilai='Lanjutkan' />"
print "</form>"
Layanan Karrigell ditulis mirip dengan skrip Python. Tujuannya adalah untuk memetakan permintaan ke metode yang ditentukan pengguna. Nama metode yang ditentukan diteruskan setelah layanan Karrigell panggilan tes Metode ini
http://localhost/testarea/test.ks/test
memungkinkan kita menulis contoh ini
def indeks():
cetak "Fungsi indeks."
tes pasti():
print "Fungsi pengujian."
Jika Anda menggunakan skrip Python ini tanpa meneruskan nama metode, program Anda akan mengeksekusi metode indeks secara default. Jika pengujian nama metode dilewati, metode pengujian akan dipanggil akan melempar tidak normal.
Menggunakan layanan Karrigell juga mudah untuk menangani data yang dikirimkan dalam formulir. Mari kita buat
indeks def ascname.ks():
print "Siapa nama anda?<br />"
cetak "<form action='nameSubmit'>"
print "<tipe masukan='teks' nama='nama' /><br />"
print "<input type='kirim' nilai='Lanjutkan' />"
cetak "</form>"
def namaKirim ( nama ):
print "Nama Anda", nama + "."
Tentu saja, mengizinkan akses publik eksternal ke metode Anda adalah hal yang sangat berbahaya Untuk mencegah pengguna yang tidak berwenang mengakses metode Anda, awali metode Anda seperti yang dijelaskan di bawah ini:
def _private():
melewati
untuk mengakses metode _private akan memunculkan pengecualian.
Menggunakan HIP
di Askname.py, ada satu hal yang perlu diperhatikan. Kode ini memiliki pernyataan cetak. Jika dapat dikeluarkan secara langsung tanpa menggunakan cetak, itu akan menjadi Alangkah hebatnya Untungnya, Karrigell menyediakan fungsionalitas seperti itu. Ini disebut HTML Inside Python dan ini akan membersihkan semua pernyataan print yang buruk itu. Dan konversi dari Askname.py ke TML Inside Python juga sangat mudah dihapus. Hapus cetakan di Askname.py dan ganti nama file menjadi Askname.hip
f QUERY.has_key ( "name" ):
"Nama Anda", _nama + "."
kalau tidak:
"Siapa namamu?<br />"
"<metode formulir='POSTING'>"
"<tipe masukan='teks' nama='nama' /><br />"
"<input type='kirim' value='Lanjutkan' />"
"</form>"
Ini adalah HTML Inside Python. Karrigell akan memeriksa file Anda dan secara otomatis menambahkan print jika diperlukan. HTML Inside Python adalah bukti betapa mudahnya Karrigell mempelajarinya.
Python Inside HTML
Karrigell menyediakan HTML
pernyataan
python dalam tag khusus, lalu kirimkan hasil akhirnya ke browser pengguna
Angka acak: <b><% print random.random() %></b>
Seperti yang Anda lihat, konsep Python Inside HTML sangat sederhana, bahkan blok kodenya bisa lebih sederhana:
<%= random .random() %>
Namun bagaimana jika Anda berurusan dengan logika yang lebih kompleks,seperti
memproses data formulir? Data formulir dapat diproses seperti halnya diproses dalam skrip Python.
jika QUERY.has_key ("nama" ): %>
Nama Anda adalah <%= _nama %>.
<% akhir %>
<% lain: %>
Siapa namamu?<br />
<metode formulir='POSTING'>
<tipe masukan='teks' nama='nama' /><br />
<input type='kirim' value='Lanjutkan' />
</bentuk>
<% end %>
Perhatikan penggunaan <% end %>. Ini akan menandai akhir dari blok kode, sama seperti indentasi pernyataan kondisional kita di atas. Alternatif lain adalah dengan menggunakan tag indent, yang juga digunakan To
mengidentifikasi
lekukan kode
<% jika QUERY.has_key ("nama" ): %>
Nama Anda adalah <%= _nama %>.
<% lain: %>
Siapa namamu?<br />
<metode formulir='POSTING'>
<input type='teks' nama='nama' /><br />
<input type='kirim' value='Lanjutkan' />
</bentuk>
</indent>
Mari kita coba
lebih banyak fitur
seperti ini. Tag dapat digunakan melalui skrip Python, tagtest.pyrom HTMLTags import *
print CENTER ( B ("Test." ) )
juga dapat diproses di Karrigell, dan Karrigell juga menyediakan mekanisme sesi yang baik yang mendekati berorientasi objek. Mari kita buat kode sederhana untuk didemonstrasikan di sesi Karrigell kembali ke contoh pertama kita, pengguna akan diberikan nomor keberuntungan. Jika pengguna me-refresh halaman, nomor tersebut akan tetap ada karena nomor tersebut akan disimpan di sessin. ambil nomor keberuntungan baru, ini dilakukan dengan menutup sessin. Buat layanan Karrigell bernama luckynumber.ks dan masukkan kode berikut:
impor
pengguna acak = Sesi()
def indeks():
jika bukan "luckyNumber" di direktori ( pengguna ):
pengguna.luckyNumber = acak.randint (0, 20)
cetak "Nomor keberuntungan Anda:", user.luckyNumber
cetak "<br /><br />"
print "<a href='reset'>Reset Nomor Keberuntungan</a>"
def atur ulang():
pengguna.close()
print “Nomor keberuntungan anda telah direset.”
cetak "<br /><br />"
print "<a href='index'>Kembali</a>"
Kesimpulan
Karrigell menyediakan empat metode untuk membuka web, skrip Python, layanan Karrigell, HTML Inside Python dan Python Inside HTML satu keuntungan umum: kesederhanaan penggunaan. Karrigell mengubah pengembangan web menjadi hal yang elegan dan sederhana. Baik Anda menggunakan Karrigell sendiri atau dikombinasikan dengan apache, ini sangat sederhana karena, baik untuk pemula atau veteran, Karrigell adalah pilihan yang baik .