2011-08-18 34 views
45

Tôi đang sử dụng Flask phiên bản 0.7. Tôi đã lưu trữ đường dẫn của nội dung tĩnh trong tệp cấu hình và tải nó bằng cách sử dụngFlask - Truy cập biến cấu hình trong mẫu

app.config.from_envvar(<file_name>) 

Tôi có thể truy cập biến cấu hình này trong mẫu mà không truyền biến thông qua chế độ xem không?

+0

Tôi đã sử dụng app.config.from_pyfile () để tải cấu hình vào biến cấu hình bình. Kể từ Flask 0.6; config, là một trong các biến toàn cầu, có sẵn trong các mẫu Jinja2 theo mặc định. Sau đó, các biến cấu hình có thể dễ dàng truy cập như một đối tượng từ điển trong các khuôn mẫu. – ranendra

Trả lời

79

Có một vài biến toàn cầu được chuyển trong ngữ cảnh mẫu theo mặc định bởi bình (here là danh sách đầy đủ), một trong số chúng là config, cho phép bạn truy cập cấu hình ứng dụng từ mẫu. Là một từ điển, nó có thể được truy cập bằng cách sử dụng cú pháp config['MY_CONFIGURATION'] hoặc config.MY_CONFIGURATION (cú pháp này để truy cập các mục dict là dành riêng cho Jinja).

Mặt khác, nếu bạn muốn chuyển dữ liệu tùy ý vào mẫu của mình mà không phải chuyển nó một cách rõ ràng trong mỗi chế độ xem, bạn sẽ phải sử dụng context processors.

+15

Tôi chỉ muốn lưu ý rằng "Chỉ các giá trị trong chữ hoa thực sự được lưu trữ trong đối tượng cấu hình"; điều này đã cho tôi một vài phút bối rối khi đối mặt với cùng một câu hỏi như người đăng. – mikewaters

+1

Đừng quên tải lại Flask nếu bạn đang lưu trữ các giá trị cấu hình của bạn trong một tệp Python trong chế độ gỡ lỗi, những thay đổi trong tệp này không được xem. – Epoc

+4

Ví dụ về cách sử dụng mẫu: '{{config.MY_CONFIGURATION}}' –

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