2015-12-16 11 views
7

मैं टेम्पलेट बनाने के लिए पूरी तरह से Django का उपयोग कर रहा हूं (कोई सर्वर नहीं)। यहाँ योजना मेरे पास है:Django templating का उपयोग कैसे करें सर्वर के बिना

page1.html

{% extends "base.html" %} 
{% block 'body' %} 

    <div class="container"> 
     <img src="./images/{{filename}}" style="padding-top:100px; padding-left:100px" align="center" width="60%" heig 
    </div> 

{% endblock %} 

base.html

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <link rel="stylesheet" type="text/css" href="../src/bootstrap.min.css"> 
     <link rel="stylesheet" type="text/css" href="../src/sticky-footer-navbar.css"> 
     <link rel="icon" href="../images/favicon.ico"> 

     <title>MY TITLE</title> 

    </head> 
    <body> 


<!-- Fixed navbar --> 
    <nav class="navbar navbar-default navbar-fixed-top"> 
     <div class="container"> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="../index.html">Adjuvant</a> 
     </div> 
     <div id="navbar" class="collapse navbar-collapse"> 
      <ul class="nav navbar-nav"> 
      <li class="active"><a href="../index.html">Home</a></li> 
      <li><a href="#about">About</a></li> 
      <li><a href="mailto:[email protected]">Contact</a></li> 
      </ul> 
     </div><!--/.nav-collapse --> 
     </div> 
    </nav> 
    <!-- End navbar --> 


     <!--- BEGIN INSERT TEMPLATE FOR OTHER PAGE HERE--> 
     {% block 'body' %} 

     {% endblock %} 
     <!--- END TEMPLATE FOR OTHER PAGE HERE--> 



    <footer class="footer"> 
     <div class="container"> 
     <p class="text-muted"> &copy; 2015 &middot; 
    </p> 
     </div> 
    </footer> 


    <!-- Bootstrap core JavaScript 
    ================================================== --> 
    <!-- Placed at the end of the document so the pages load faster --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script>window.jQuery || document.write('<script src="../src/jquery-1.11.0.min.js"><\/script>')</script> 
    <script src="../src/bootstrap.min.js"></script> 
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> 
    <script src="../src/ie10-viewport-bug-workaround.js"></script> 




    </body> 


</html> 

code_to_make_template.py

from django.template import Template, Context, loader 
from django.conf import settings 
settings.configure() 

template = open("htmls/src/templates/page1.html").read() 
t = Template(template) 
filename = "mypicture.svg" 
c = Context({'filename':filename}) 
output_string = t.render(c) 

निर्देशिका संरचना इस तरह दिखता है:

current_dir 
    |___ code_to_make_template.py 
    |___ html 
     |_ src 
      |_ templates 
        |_ base.html 
        |_ page1.html 

लेकिन मैं इस संदेश मिला जब मैं code_to_make_template.py चलाएँ:

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 

यह करने के लिए सही तरीका क्या है?

+0

ठीक उसी सवाल यहाँ कहा गया था का उपयोग कर सकते: http: // stackoverflow.com/questions/98135/how-do-i-use-django- टेम्पलेट्स-without-the-rest-of-django?rq=1 –

उत्तर

5

django.core.exceptions.AppRegistryNotReady: ऐप्स अभी तक लोड नहीं किए गए हैं।

Standalone scripts प्रलेखन पैरा के अनुसार, तुम सिर्फ सेटअप Django की जरूरत है:

>>> from django.conf import settings 
>>> settings.configure() 
>>> 
>>> import django 
>>> django.setup() 
>>> 
>>> from django.template import Template, Context, loader 
>>> t = Template("Hello, {{name}}") 
>>> c = Context({'name': 'world'}) 
>>> t.render(c) 
u'Hello, world' 
+0

क्या आपको अभी भी 'django.setup()' कॉल करने पर 'settings.configure()' की आवश्यकता है? – approxiblue

+1

@approxiblue मुझे डर है, 'django.core.exceptions.Iprproperly कॉन्फ़िगर किया गया: LOGGING_CONFIG सेटिंग का अनुरोध किया गया है, लेकिन सेटिंग्स कॉन्फ़िगर नहीं हैं। सेटिंग को एक्सेस करने से पहले आपको पर्यावरण परिवर्तनीय DJANGO_SETTINGS_MODULE या कॉल सेटिंग्स.configure() को परिभाषित करना होगा। 'अगर' कॉन्फ़िगर() 'पहले नहीं कहा जाता है .. धन्यवाद! – alecxe

3

यदि आप वास्तव में django मॉडल/ऐप्स इत्यादि का उपयोग नहीं करना चाहते हैं तो आप आउटपुट की सेवा के लिए अपाचे या nginx जैसे कुछ और उपयोग करना चाहते हैं, तो आप केवल Jinja template language (टेम्पलेट बनाने के लिए क्या django उपयोग करते हैं) का उपयोग करना चाहते हैं। सादा एचटीएमएल के रूप में।

+4

डिफ़ॉल्ट रूप से Django वास्तव में Django टेम्पलेट भाषा का उपयोग करता है, जो Jinja प्रेरणा लेता है। Django भी Jinja का समर्थन करता है। – approxiblue

1

बस सुनिश्चित करें कि मैं इस समझ रहा हूँ बनाने के लिए, आप नियमित रूप से एचटीएमएल पर आधारित पृष्ठों को उत्पन्न करने के लिए देख रहे हैं django templating इंजन? यदि ऐसा है, तो मैं django-medusa स्थिर साइट जनरेटर का उपयोग कर उपयोग कर रहा हूं। हो सकता है कि आप जो कर रहे हैं उसके लिए यह अधिक हो गया है, लेकिन मैं इसे स्थानीय डीजेंगो इंस्टेंस और जेनेरिक स्टेटिक एचटीएमएल चलाने के लिए उपयोग करता हूं जिसे मैं विभिन्न स्थानों पर अपलोड करता हूं (गोडाडी, एस 3, और अधिक)।

यह स्थापित करने के लिए काम का एक छोटा सा है, लेकिन इसके साथ आप आसानी से न सिर्फ Django templating प्रणाली, लेकिन यह भी मॉडल, प्रश्नों, आदि

संबंधित मुद्दे