.
piramit hızlı, küçük, aşağı-toprak, açık kaynak Python web geliştirme çerçevesi & nbsp; Bu gerçek dünya web uygulaması geliştirme ve daha eğlenceli, daha öngörülebilir ve daha üretken dağıtım yapar.
piramit bir Pilonlar proje ve Pylons topluluk tarafından üretilen yeni web çerçeveleri yatmaktadır.
piramit daha önce repoze.bfg olarak biliniyordu.
Destek ve Belgeler
Belgeleri, rapor hataları görüntülemek ve destek almak için Pylons Proje web sitesine bakın.
Lisans
piramit BSD türevi repoze Kamu Lisansı altında sunulan
Bu sürümdeki yeni nedir:.
- mako_templating: eklendi defans nedeniyle Python 3.2 desteği bırakarak yukarı markupsafe için mako olmayan importability için geçici çözüm. Mako çiftleşmiş artık MarkupSafe 0.17 ve Python 3.2 (MarkupSafe 0.17 kombinasyonu ve Python 3.3 veya desteklenen herhangi bir Python 2 versiyonu Tamam çalışır rağmen) kombinasyonu altında çalışacak.
- varsa pyramid.config.assets.PackageOverrides, ithalatçı tarafından belirlenen __loader__ için KEP 302. Proxies belirtilen __loader__ nesneler için API uygulamak nesne olun; aksi halde, NotImplementedError yükseltir. Bu Piramit statik bakış geçersiz kılar düzgün Python 3.3 (önceden onlar olmaz) altında iş yapar. Daha fazla bilgi için https://github.com/Pylons/pyramid/pull/1015 bakın.
sürüm 1.4 yeni nedir:
- ZODB öğretici fonksiyonel testler Fix
sürümünde yeni 'nedir 1.4 Beta 3:
- Ambalaj sürümü sadece, herhangi bir kod değişikliği. 1.4b2 nedeniyle tarball'daki dizinleri eksik bir brownbag serbest oldu.
sürüm 1.3.4 yeni nedir:
- pyramid.debug_routematch ve travers açıldı
- yüklem rota hata ayıklama bilgilerini yazdırmak için çalışırken yönlendirici bir istisna getireceğini, herhangi bir rotada kullanıldı. Bu hata 1.3a1 beri var olmuştur.
- travers yüklemi herhangi bir rotada kullanıldığı zaman rota hata ayıklama bilgilerini yazdırmak için çalışırken, proutes ve pviews konsol komut bir istisna yükseltmek olacaktır. Bu hata 1.3a1 beri var olmuştur.
- ustadan backport bug fix: - varlık özellikleri ile miras karıştırma sırasında Mako şablonları araması ise, (mako dizinleri kullanarak) mutlak uri kontrol edin. https://github.com/Pylons/pyramid/issues/662
- Bir TypeError almış olabilir function () & lt; function () istisna.
- ustadan backport: HTTP başlıklarını potansiyel neden farkedilmeden gitmek için görünüm kayıtları çelişkili normalize olması değil kabul edin. Ancak şimdi bir hata çıkaracağız durum ('text / HTML' vs 'text / html') farklı iki görüş. https://github.com/Pylons/pyramid/pull/620
Unorderable türleri: Python 3 altında koşuyoruz, bir piramit uygulamasında bir kabul yüklemi ile birden çok kez kaydederken
nedir sürüm 1.4 Alpha 1 Yeni:
- Hata düzeltmeleri:
- İleri bağlantı noktası: hiçbir kimlik doğrulama ilkesi yapılandırılmış zaman, pyramid.security.effective_principals bir çağrı koşulsuz boş bir liste dönecekti. Bu koşulsuz sahip [Herkes] döndü ve şimdi yok gerektiğini, yanlış oldu.
- Açık url gönderme regexes artık iki nokta üst üste içerebilir. https://github.com/Pylons/pyramid/issues/629
- RuntimeError neden Sözlük yineleme istisna sırasında boyutu değişti. Artık yok. Daha fazla bilgi için https://github.com/Pylons/pyramid/issues/635 bakın.
- , uri zaten ayarlanmış olup olmadığını kontrol edin ve bir varlık spec geri getirmek. Normalde kalıtsal şablonlar veya yer bileşenleri ile oluşur. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
- Mako şablonları araması ise, varlık özellikleri ile miras karıştırma sırasında (mako dizinleri kullanarak) mutlak uri kontrol edin. https://github.com/Pylons/pyramid/issues/662
- HTTP başlıklarını potansiyel neden farkedilmeden gitmek için görünüm kayıtları çelişkili normalize olması değil kabul edin. Ancak şimdi bir hata çıkaracağız durum ('text / HTML' vs 'text / html') farklı iki görüş. https://github.com/Pylons/pyramid/pull/620
- 1.3 dalı İleri-port: unorderable türleri: Python 3 altında koşuyoruz, bir piramit uygulamasında yüklemi kabul bir ile birden çok kez kaydederken, bir TypeError almış olabilir function () & lt; function () istisna.
- Özellikler:
- Configurator.add_directive şimdi __name__ yok ve __doc__ niteliklerini partials veya __call__ uygulama nesneleri gibi keyfi callables kabul eder. Https://github.com/Pylons/pyramid/issues/621 ve https://github.com/Pylons/pyramid/pull/647. bak
- Üçüncü taraf özel görünüm, rota, ve abone yüklemler artık pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate ve pyramid.config.Configurator.add_subscriber_predicate üzerinden görünümü yazarlar tarafından kullanılmak üzere eklenebilir. Yani, örneğin, bu yapıyor:
- config.add_view_predicate ('abc', my.package.ABCPredicate)
- bir görünüm yazar bu yüklemi yapılandırılmış bir uygulama bu izin vermeyeceğimizi Olabilir
- view_config (abc = 1)
- Benzer özellikler add_route ve add_subscriber için var. Üçüncü Taraf Görünüm, Rota, veya Abone Dayanak & quot ekleme; & quot; Daha fazla bilgi için kanca bölümde.
- değişiklikler yukarıdaki özelliğini desteklemek için yapılan Not artık sadece eylemleri, aynı & quot kullanarak kayıtlı olduğu anlamına gelir; birbiri ile çatışabilir. Bu potansiyel çatışma, ancak şimdiye kadar bu davranış bağlı bilgim hiçbir şey (biraz saçma oldu) olabilir eylemler farklı siparişler kayıtlı davayı olmak için kullanılır.
- Özel nesneleri nesne sınıfının bir __json__ yöntemi tanımlayarak Piramit kolayca JSON seri hale getirilebilir. Bu yöntem (vb gibi ints, listeleri, sözlükler, dizeleri gibi, ve) json.dumps tarafından yerel seri değerleri dönmelidir.
- JSON render şimdi JSON serializations bilinmeyen nesneleri dönüştürmek için özel tip adaptörlerin tanımı için izin verir.
- Bu sürümü olarak, REQUEST_METHOD yüklem, kullanıldığında, ayrıca bu KAFA GET kullandığınızda ima edilir ima edecek. Örneğin, (REQUEST_METHOD = 'GET')view_config kullanarak eşdeğerdir (REQUEST_METHOD = (, 'GET' 'KAFA'))view_config kullanarak. view_config Kullanma (REQUEST_METHOD = (, 'POST')view_config (kullanarak eşdeğerdir 'GET' REQUEST_METHOD = KAFA atlar GET bir varyantı olduğu için ('HEAD' 'GET', 'POST'). Bu Vücut ve WebOb bir HEAD kullanılan boş bir vücudu döndürmek için özel bir desteğe sahiptir.
- config.add_request_method keyfi callables ile uzanan istek nesneleri desteklemek için getirilmiştir. Bu yöntem destekleyici yöntemler yanı sıra özelliklerine önceki config.set_request_property genişletir. Bu yöntem artık daha az kod sürüm 1.3 config.set_request_property daha istek inşaat sırasında yürütülecek neden olur.
- katmayın? Sorgu argüman sağlandı ama boş ise request.resource_url tarafından oluşturulan URL'lerin.
- katmayın? _query argüman sağlandı ama boş ise request.route_url tarafından oluşturulan URL'lerin.
- statik görünüm makine şimdi, HTTPNotFound ve HTTPMovedPermanently istisnalar (yerine getirilerinden daha) yükseltir.
- Mako oluşturucu artık bir varlık spec bir def adını destekler. Def adı varlık spec mevcut olduğunda, sistem şablonu içinde şablon def hale getirecek ve sonuç dönecektir. Yol / / template # defname.mako için: Bir örnek varlık spec paketidir. Bu tamamı yerine şablon render template.mako şablon içinde def adlı defname hale getirecektir. Form bir başlığın dönen eski yolu ('defname', {}) görünümünden geriye dönük uyumluluk için desteklenir,
- Chameleon ZPT oluşturucu artık bir varlık spec bir makro adı kabul eder. Makro adı varlık spec mevcut olduğunda, sistem tanımlamak-makro olarak listelenmiş makro işlemek ve tüm şablonu oluşturma yerine sonucu dönecektir. Bir örnek varlık spec: paket: yol / / şablona # macroname.pt. Bu yerine tüm templae bir template.pt şablonu içinde macroname olarak tanımlanan makro işlemez.
- istisna artık eşleşmedi yüklemi bir metin açıklamasını içerir.
- Bir add_permission yönergesi yöntemi Konfigürasyon eklendi. Bu yönerge Piramit içgözlem sistemine bir serbest duran izni introspect kaydeder. Pyramid üzerine inşa Altyapıları böylece çalışan sistem tarafından desteklenen izinler kapsamlı bir listesini oluşturmak için izinler introspect kategori verilerini kullanabilirsiniz. Bu yöntem eklendi önce izinleri zaten add_view çağrısı onları adlandırma bir yan etkisi olarak bu introspect kategoride tescil edilmiştir, bu yöntem sadece birlikte adlandırma olmadan izin izinleri içine introspect kategori koymak için düzenlemek mümkün kılar ilişkili bir görünüm. İşte add_permission kullanımının bir örneği:
- config = Yapılandırıcı ()
- config.add_permission ('görünümü')
- UnencryptedCookieSessionFactoryConfig şimdi oturumları (varsayılan olarak bu HMAC + turşu ile yapılır) sıralıyor nasıl etkilemek için kullanılabilir signed_serialize ve signed_deserialize kancaları kabul eder.
- pyramid.testing.DummyRequest şimdi böyle set_property gibi pyramid.util.InstancePropertyMixin sınıfı tarafından sağlanan yöntemlerini destekler.
- İstek özellikleri ve yöntemleri artık ikizleri için kullanılabilir.
- İstek özellikleri ve yöntemleri istek nesnesi pyramid.paster.bootstrap döndü şimdi mevcuttur.
- bootstrap sırasında çevre isteği request.context artık kök nesnesidir.
- pyramid.decorator.reify işlevi artık bir API ve API belgelerine eklendi.
- testte yapılandırıcı oluşturmak için kullanılabilir pyramid.testing.testConfig bağlam yöneticisi, örneğin eklendi . : testing.testConfig (...) ile
- Kullanıcılar artık yeni bir request.invoke_subrequest API kullanarak görünümü kodu içinde bir İstek içi çağırabilirsiniz.
- deprecations:
- pyramid.config.Configurator.set_request_property belgeleri-önerilmemektedir olmuştur. yöntem kullanılabilir kalır ama daha özellikli pyramid.config.Configurator.add_request_method yerine (aynı tüm yetenekleri var ama aynı zamanda yöntemlerle istek nesnesi uzatabilirsiniz) kullanılmalıdır.
- Geriye Geçimsizlikler:
- Piramit yönlendirici artık isteğin WSGI ortamı sözlüğe değerler bfg.routes.route veya bfg.routes.matchdict ekler. Bu değerler (önce etkili bir yedi küçük sürümleri) docs-kaldırılmış repoze.bfg 1.0 idi. Kodunuzu bu değerlere bağlı ise, bunun yerine request.matched_route ve request.matchdict kullanın.
- Bu pyramid.traversal.ResourceTreeTraverser .__ call__ (aka ModelGraphTraverser .__ call__) doğrudan bir environ sözlüğünü geçmek artık mümkün değildir. Bunun yerine, bir istek nesnesi geçmelidir. Bir isteğin yerine bir ortam Passing Pyramid 1.1 beri amortisman uyarı üretti.
- Piramit artık düzgün çalışacaktır. LegacyRequest sınıf örnekleri bir dize döndürür bir request.path_info var. Bu Piramit sürüm koşulsuz Unicode request.path_info olacağını varsayar.
- pyramid.chameleon_zpt ve pyramid.chameleon_text adlı get_renderer, get_template, render_template ve render_template_to_response gelen fonksiyonları kaldırıldı. Bunlar Pyramid 1.0 beri ithalat üzerine bir amortisman uyarı yayınladı. Pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer kullanın (). Uygulamasını (), pyramid.renderers.render () veya pyramid.renderers.render_to_response sırasıyla yerine bu işlevlerin.
- pyramid.configuration modülü çıkarıldı. Bu Pyramid 1.0 beri kalktı ve kullanımı üzerine bir amortisman uyarı baskılı olmuştu. Bunun yerine pyramid.config kullanın.
- pyramid.paster.PyramidTemplate API uzaklaştırılmıştır. Bu Pyramid 1.1 beri kalktı ve ithalat üzerinde bir uyarı yayınladı olmuştu. Kodunuzu bu bağlıydı, bunun yerine pyramid.scaffolds.PyramidTemplate almak için kodunuzu ayarlayın.
- pyramid.settings.get_settings () API çıkarıldı. Bu Pyramid 1.0 beri amortisman uyarı baskı olmuştu. Kodunuzu bu API bağlı ise, (request.registry.settings). Ayarları pyramid.threadlocal.get_current_registry () yerine kullanmak veya istek temin kayıt ayarları niteliğini kullanın.
- pyramid.testing modülünden Bu API'ler çıkarıldı. Onlar Pyramid 1.0 beri amortisman uyarıları baskı edilmiştir:
- registerDummySecurityPolicy yerine pyramid.config.Configurator.testing_securitypolicy kullanın.
- registerResources (aka registerModels yerine pyramid.config.Configurator.testing_resources kullanın.
- registerEventListener yerine pyramid.config.Configurator.testing_add_subscriber kullanın.
- registerTemplateRenderer (aka registerDummyRenderer`), pyramid.config.Configurator.testing_add_template yerine. kullanın
- registerView yerine pyramid.config.Configurator.add_view kullanın.
- registerUtility yerine pyramid.config.Configurator.registry.registerUtility kullanın.
- registerAdapter yerine pyramid.config.Configurator.registry.registerAdapter kullanın.
- registerSubscriber yerine pyramid.config.Configurator.add_subscriber kullanın.
- registerRoute yerine pyramid.config.Configurator.add_route kullanın.
- registerSettings, kullanım pyramid.config.Configurator.add_settings yerine.
- Piramit 1.3 ve önceki olarak, Response nesnesinin __call__ yöntemi çağrıldı. Bitmiş geriçağırımları yürütür sonra bu sürümü itibariyle, bir Response nesnesinin __call__ yöntemi çağrılır. Bu request.invoke_subrequest özelliği destek olduğunu.
- Dokümantasyon:
- Eklendi & quot; anlatı belgelerine bölüm. Bu deprecations ve Piramit API'ler taşınma ve nasıl testleri çalıştırırken ve bir sunucu çalışırken Piramit oluşturulan amortisman uyarıları göstermek için baş anlatılmaktadır.
- eklendi bir & quot; & quot İstek içi çağırma; belgelere bölüm. Yeni request.invoke_subrequest API nasıl kullanılacağı açıklanır.
- Bağımlılıklar:
- Piramit şimdi WebOb 1.2b3 + (önceki Piramit sürümü sadece 1.2dev + dayanıyordu) gerektirir. Bu, metin olarak request.path_info döner WebOb bir sürümünü elde sağlamaktır.
1.3 şubesinden
View_config yönetmeni kullanarak Python 3.2 altında en az bir 64-bit Ubuntu sisteminde, On
Mako şablonları arama
:
Emir & quot;
Bu NotFound görüntüsü (ve diğer istisna görünümleri) tarafından yakalanmış böylece
(Hiçbir görünümü nedeniyle çalışmıyor yüklemler belirli bir istek için eşleştiğinde görülen) bir yüklem uyumsuzluğu istisna olduğunda
Config.set_request_property veya config.add_request_method yoluyla eklenen
Config.set_request_property veya config.add_request_method yoluyla eklenen
Bir bağlam zaten sağlanan istek üzerine ayarlı değilse
Eğer bir istek fabrikası olarak webob.request.LegacyRequest kullanırsanız
Herhangi bitmiş geriçağırımları idam önce
Piramit & quot yükseltilmesi;
sürüm 1.3.2 yeni nedir:
- Sürüm 1.3.1 bir brownbag açıklaması, at En azından Windows ve muhtemelen bir sokak köpeğinin & quot varlığı diğer işletim sistemleri üzerinde, 1.3.1 arşivini kök dizininde paket dizinine (alıntı dahil). Tarballın setuptools-git bir yayım sürümünü ziyade bir çıkış yüklü bir setuptools-git kullanarak oluşturulan çünkü bu dizin ve içeriği mevcut idi. Bu sürümde tek değişiklik 1.3.1 ambalaj hatayı düzeltmek için.
sürüm 1.3 yeni nedir:
- pyramid.wsgi.wsgiapp2 mansap WSGI uygulaması çağırdığında, Uygulamanın environ artık (kalktı ve potansiyel yanıltıcı) içinde bfg.routes.matchdict veya bfg.routes.route tuşları olacak. Yanlışlıkla, aslında, değil ne zaman bir rota eşleşmiş olduğunu algıladığı için bu hata bir belirti yanlış görünüm bulma wsgiapp2 sarılmış Piramit uygulama olacaktır.
- (mümkün örnek yöntemleri görünümü callables olarak kullanılmak üzere yapılan) sorunu https://github.com/Pylons/pyramid/issues/461 için düzeltme geriye doğru uyumsuzluğu tanıttı kullanılır. Bkz https://github.com/Pylons/pyramid/issues/503
Yöntemler sadece bir istek argüman vardı ilan
sürümünde yeni 'nedir 1.3 Beta 2:
yöntemi pyramid.request.Request.partial_application_url
- olan artık API docs. Bu özel bir yöntem olması gerekiyordu; bir API yöntemi olarak belgelerinde yayımı bir hataydı, ve özel bir şey olarak değiştirilmiştir.
- statik görünümü Windows mutlak dosya yolu kullanarak kayıtlı edildiğinde, request.static_url işlevi kaynaklara URL'leri oluşturmak için işe yaramadı. Belirti: & quot; Hayır statik URL tanımı eşleştirme c:. Foobarbaz & quot;
- Tüm testler Windows XP geçmek olun.
- ACL kimlik Bug Python 3 kontrol: o bir ACL üzerinde bir izin bir dize yerine bir dizi iken pyramid.authorization.ACLAuthenticationPolicy ve izinler ve principals_allowed_by_permission yöntemi uygunsuz Gerçek değeri geri dönebilirler, sadece ve sadece ACL izni dize işlevine geçirilen izni değerinin bir alt oldu.
- Bu hata etkileri Python 2 altında herhangi bir piramit dağıtım; Python 3. Bu Piramit 1.3a1 beri var olan çalışan dağıtımlarda sadece var olan bir hatadır.
- Bu hata Python 2 dizeleri altında mevcut değil Python 3 altındaki dizeleri bir __iter__ niteliğinin bulunması nedeniyle oldu.
sürümünde yeni 'nedir 1.3 Beta 1:
- Hata düzeltmeleri:
- Yapılandırma pyramid.configuration.Configurator örneği bir eski stil ise pyramid.config.Configurator.with_package işe yaramadı.
- Piramit yetkilendirme politikaları Introspector kadar yoktu.
- deprecations:
- tmpl_context istek değişkeni tüm referanslar dokümanlar çıkarıldı. Piramit Onun varlığı kullanıcıları dikmesi asla insanlar için kafa karıştırıcı. Bu Piramit 1.0 Pylons kullanıcıları için bir taşıma kolaylık olarak eklenmiştir, ancak Piramit render sistemi 'elektrik direği daha çok farklı oldu, ve alternatif yollar o elektrik direği sunmak için tasarlanmıştır ne için var çünkü yakaladı asla. Sonsuza & quot; Bu mevcut & quot devam edecektir; ancak dokümanlar tavsiye veya söz olmayacaktır.
Gereksinimler :
- Python
Yorum Bulunamadı