2012-03-18 19 views

Trả lời

3

Nếu bạn đang sử dụng vanilla Bottle with SimpleTemplate, có một giải pháp mà tôi đã vấp phải.

Đối với trang web của mình, tôi cần quyền truy cập vào một số chức năng trong mọi mẫu, app.get_url hiển nhiên là một trong số chúng. Điều này làm việc cho tôi:

# after app creation, but before the views 
SimpleTemplate.defaults["get_url"] = app.get_url 
SimpleTemplate.defaults["url"] = lambda: request.url 
SimpleTemplate.defaults["fullpath"] = lambda: request.fullpath 
SimpleTemplate.defaults["sorted"] = sorted 

Điều này hoạt động như của Chai 0.9, tôi không thử nghiệm trên các phiên bản mới hơn của khung.

Hành vi này không có giấy tờ, nhưng Marcel Hellkamp giải thích nó trong this thread. Trong đó, các giải pháp khác cũng được đề cập:

  • Vượt qua các hình cầu trong _vars hoặc mẫu tương tự arg.
  • Tạo trang trí để cung cấp mặc định.

Ngoài ra, trong Chai 0.10, chức năng mới liên quan đến vấn đề đã được giới thiệu trong SimpleTemplate mẫu namespace: defined, get, and setdefault

0

Note: giải pháp này tương tự có thể được sử dụng với các mẫu động cơ khác. Kỹ thuật này hoàn toàn giống nhau, nhưng bạn sử dụng BaseTemplate (nó hoạt động cho tất cả các lớp mẫu) hoặc lớp cho công cụ mà bạn muốn sử dụng.

Các vấn đề liên quan