2011-06-14 28 views
5

Ana() işlevinde piramit mutlak uygulama URL'si almanın bir yolu var mı? Genel ayarlara eklemek istiyorum, böylece her yerde (şablonlar ve js dosyalarında) çağrılabilir. Piramit belgelerinde bazı işlevler yardımcı olabilir, ancak hepsinin bir istek nesnesine ihtiyacı vardır ve bir görüşte çağırmaları gerekir. Teşekkürler.piramit: uygulama mutlak url olsun

cevap

4

Pyramid (çoğu WSGI uygulamaları gibi) herhangi bir alan ve uRL öneki üzerine monte edilebilir. Bu nedenle, uygulamanın kendisinin uygulamanıza özel olarak kodlamadığınız sürece (örneğin bir INI ayarı) gerçekte hangi URL'lerin sorumlu olduğunu bilmediği anlaşılmaktadır. request.application_url neden var

Bu ... APPLICATION_URL uygulamanıza isteklerini proxy olduğunu kaç farklı etki ve URL önekleri dayalı istek başına farklı olabilir çünkü.

3

Sadece benim durumumda benim indeks rota, 'ev' için tam bir rota olsun:

benim JS aramaların hepsi uygun bir yol inşa etmek başvurmak üzere bu yüzden benim ana sarıcı mako şablonda bu set ajax çağrıları/vb

<script type="text/javascript" charset="utf-8"> 
     <% 
      app_url = request.route_url('home').rstrip('/') 
     %> 
     APP_URL = '${app_url}'; 
    </script> 
+2

'' request.application_url'' da mevcuttur. Buradaki nokta, istek nesnesinin yalnızca görünümlerinizde değil, şablonlarınızda mevcut olduğunu düşünüyorum. –

+0

Evet request.application_url her istekte var, ancak istek nesnesiz bir yol arıyorum veya __init__.py'deki main() işlevinde sahte istekle. –

İlgili konular