zope.paste adalah paket yang memungkinkan Anda untuk
- Mempekerjakan WSGI middlewares dalam aplikasi Zope 3
- Menyebarkan aplikasi server Zope 3 pada setiap webserver WSGI berkemampuan
menggunakan PasteDeploy. Ini adalah dua yang sama sekali berbeda modi operandi yang hanya memiliki kesamaan bahwa mereka adalah memfasilitasi PasteDeploy. Masing-masing dijelaskan secara rinci di bawah.
WSGI middlewares dalam Zope 3
zope.paste memungkinkan Anda untuk stack middlewares WSGI di atas aplikasi penerbit Zope 3 tanpa mengubah cara Anda mengkonfigurasi Zope (zope.conf) atau menjalankannya (runzope, zopectl).
Konfigurasi ini sangat sederhana. Dengan asumsi bahwa Anda telah membuat sebuah Zope 3 contoh menggunakan script mkzopeinstance, ada tiga langkah yang perlu dilakukan:
Instalasi dan konfigurasi zope.paste
zope.paste dapat diinstal sebagai telur di mana saja ke PYTHONPATH Anda atau hanya jatuh ke
Konfigurasi server
Kami membuat
& Nbsp; jenis Paste.Main
& Nbsp; alamat 8081
Konfigurasi WSGI tumpukan
Sekarang kita mengkonfigurasi aplikasi WSGI menggunakan PasteDeploy sintaks di
[App: Paste.Main]
paste.app_factory = zope.paste.application: zope_publisher_app_factory
Itu tidak benar-benar menarik, meskipun. PasteDeploy memungkinkan Anda untuk rantai berbagai entitas WSGI bersama-sama, yang mana itu akan menarik. Tampaknya ada perbedaan antara 'aplikasi' dan 'filter' (juga disebut sebagai 'middleware'). Sebuah contoh yang mungkin menarik adalah menerapkan transformasi XSLT untuk output dari aplikasi Zope 3 WSGI.
Untungnya cukup, seseorang tampaknya telah membuat filter WSGI untuk menerapkan stylesheet XSLT. Anda dapat menemukannya di http://www.decafbad.com/2005/07/xmlwiki/lib/xmlwiki/xslfilter.py
Jika Anda ingin menerapkan WSGI filter ini untuk Zope 3, Anda akan perlu tiga hal:
1. Letakkan file xslfilter.py di suatu tempat di PYTHONPATH. / Lib / python adalah tempat yang baik.
2. Tambahkan potongan ini ke bagian bawah xslfilter.py:
& Nbsp; def filter_factory (global_conf, ** local_conf):
& Nbsp; def menyaring (app):
& Nbsp; kembali XSLFilter (app)
& Nbsp; kembali penyaring
3. Ubah file yang paste.ini sebagai berikut:
& Nbsp; [pipa: Paste.Main]
& Nbsp; pipa = XSLT utama
& Nbsp; [app: main]
& Nbsp; paste.app_factory = zope.paste.application: zope_publisher_app_factory
& Nbsp; [Filter: XSLT]
& Nbsp; paste.filter_factory = xslfilter: filter_factory
& Nbsp; Apa yang dilakukan adalah untuk mendefinisikan sebuah pipa. Pelajari lebih lanjut tentang ini di situs PasteDeploy. Mengacu pada sumber xslfilter.py untuk informasi tentang cara untuk lulus stylesheet untuk filter.
Menyebarkan Zope 3 pada webserver WSGI berkemampuan
zope.paste memungkinkan Anda untuk menjalankan Zope 3 pada setiap perangkat lunak webserver WSGI-mampu menggunakan PasteDeploy. Untuk ini, Anda tidak akan lagi membutuhkan Zope 3 contoh (meskipun Anda masih dapat memiliki satu), Anda tidak akan mengkonfigurasi Zope 3 melalui zope.conf dan tidak akan mulai menggunakan runzope atau zopectl.
Konfigurasi aplikasi
zope.paste menyediakan pabrik PasteDeploy-kompatibel untuk aplikasi WSGI penerbit Zope 3 dan register di pintu masuk. Oleh karena itu kita dapat membuat sangat sederhana Zope 3 aplikasi dalam file konfigurasi PasteDeploy (misalnya paste.ini):
[App: main]
Penggunaan = telur: zope.paste
site_definition = /path/to/site.zcml
file_storage = /path/to/Data.fs
devmode = on
Dalam hal ini, /path/to/site.zcml mengacu pada site.zcml sebagaimana diketahui dari Zope 3 contoh. Anda dapat, misalnya, menempatkan paste.ini menjadi ada Zope 3 contoh, di samping site.zcml.
Konfigurasi database ZODB
Alih-alih merujuk pada ZODB filestorage menggunakan pengaturan file_storage, Anda juga dapat mengkonfigurasi beberapa atau lainnya backends Database ZODB dalam file konfigurasi ZConfig-gaya (seperti zope.conf), misalnya berikut mengkonfigurasi klien ZEO:
& Nbsp;
& Nbsp; Server localhost: 8100
& Nbsp; storage 1
& Nbsp; cache-size 20MB
& Nbsp;
Merujuk ke file ini dari paste.ini cara ini (dan menghapus pengaturan file_storage):
db_definition = db.conf
Konfigurasi server
Untuk dapat menggunakan aplikasi Zope, kita hanya perlu menambahkan definisi server. Kita bisa menggunakan salah satu yang datang dengan Tempel atau PasteScript, bukan:
[Server: main]
Penggunaan = telur: PasteScript # wsgiutils
tuan rumah = 127.0.0.1
port = 8080
Sekarang kita bisa memulai aplikasi menggunakan perintah Paster yang datang dengan PasteScript:
& Nbsp; Paster melayani paste.ini
Middlewares WSGI dapat dikonfigurasi seperti dijelaskan di atas atau di situs web PasteDeploy
Apa yang baru dalam rilis ini:.
- dukungan Ditambahkan untuk Python 3.3 .
- Turun dukungan untuk Python 2,4 dan 2,5.
- dukungan Dihapus untuk mempekerjakan middlewares WSGI dalam aplikasi Zope 3. Hanya server startup berbasis skrip sekarang didukung.
- Ditambahkan script konsol baru untuk menjalankan pasta-dikonfigurasi WSGI server dan aplikasi.
- Sesuai dengan standar ZF tata letak proyek.
- Ditambahkan lisensi dan hak cipta berkas. Juga tetap pernyataan hak cipta di header berkas.
- Ditambahkan MANIFEST.in dan tox.ini.
Apa yang baru dalam versi 0.4:
- Tambahkan changelog ini, direkonstruksi dari svn log dan tanggal rilis di PyPI.
- Mendukung pilihan konfigurasi 'fitur' dalam file PasteDeploy INI, yang dapat berisi daftar dipisahkan dengan spasi dari nama fitur. Ini dapat diuji dalam file ZCML dengan sintaks.
- Sebelumnya satu-satunya fitur yang dapat diaktifkan adalah 'devmode' dan itu pilihan sendiri. Untuk kompatibilitas mundur, devmode = pada menambahkan fitur 'devmode' ke daftar fitur.
Persyaratan :
- Python
Komentar tidak ditemukan