2012-01-25 27 views
5

Tôi đang xây dựng một ứng dụng, sử dụng công cụ/ngôn ngữ lập trình Django để "biên dịch" một số HTML. Tuy nhiên, các ứng dụng không chạy trên Django, và không có tất cả các cấu hình và các công cụ. Khi tôi cố gắng sử dụng nó, tôi nhận được lỗi sau:Sử dụng công cụ tạo khuôn mẫu của Django mà không có phần còn lại của Django

Traceback (most recent call last): 
    File "Send.py", line 33, in <module> 
    template = loader.get_template("email.html") 
    File "/Library/Python/2.7/site-packages/django/template/loader.py", line 157, in get_template 
    template, origin = find_template(template_name) 
    File "/Library/Python/2.7/site-packages/django/template/loader.py", line 138, in find_template 
    raise TemplateDoesNotExist(name) 
django.template.base.TemplateDoesNotExist: email.html 

Mã Tôi đang sử dụng như sau:

from django.template import loader, Context 
from django.conf import settings 

template = loader.get_template("email.html") 
rendered = template.render(data) 

Mẫu là trong cùng thư mục với file Python.

+2

Có thể [trùng lặp] (http://stackoverflow.com/questions/98135/how-do-i-use-django-templates-without-the-rest-of-django) – reclosedev

+0

Đây là câu trả lời hoạt động trên Django > = 1.8 http://stackoverflow.com/a/34494931/817277 – Pramod

Trả lời

8

Tôi khuyên bạn nên sử dụng Jinja2 thay vì các mẫu Django làm giải pháp độc lập.

+1

Tôi thứ hai. Nếu bạn đã quen thuộc với các mẫu Django bạn sẽ biết cách sử dụng Jinja2. Họ gần như giống hệt nhau nhưng Jinja là người tốt hơn. – GivP

+0

Hỗ trợ python3 Jinja2 vẫn đang được thử nghiệm – niklas

3

Để trình tải tìm mẫu của bạn; bạn cần có thư mục chứa các mẫu trong bộ sưu tập TEMPLATE_DIRS trong settings.py. Theo mặc định, django sẽ tìm kiếm một thư mục templatesbên trong một ứng dụng vì vậy nếu bạn chưa đăng ký ứng dụng; django không thể tìm thấy mẫu.

Nếu bạn đang theo công cụ mẫu "django like", jinja rất gần với cú pháp của django và hoàn toàn độc lập, bạn sẽ không gặp phải các sự cố không mong muốn như hiện tại.

6

Bạn đã cố gắng sử dụng điều này chưa?

settings.configure(TEMPLATE_DIRS=('.',)) 

Vì các mẫu nằm trong cùng thư mục với mã python, nên đủ để trình tải tìm mẫu.

+0

Có ai đã kiểm tra điều này để xem nó có hoạt động không? –

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