2011-08-08 7 views
12

में एचटीएमएल प्रस्तुत करना मैं विकिपीडिया जैसी परियोजना के साथ काम कर रहा हूं। मैं मार्कडाउन का उपयोग कर टेक्स्ट फ़ाइल को HTML कोड में परिवर्तित कर सकता हूं। मेरी समस्या यह है कि, मैं इस एचटीएमएल कोड को एचटीएमएल फाइल में प्रस्तुत करना चाहता हूं। यहाँ मेरी कोड,वेब.py

class articles: 
    def GET(self): 
     form_name=web.input() 
     article_name=form_name.page 
     article_file_path=os.path.join('articles',article_name) 
     fp = open(article_file_path,'rU') 
     text = fp.read() 
     body = markdown2.markdown(text) 
     return render.article_files(article_name, body) 

मैं ARTICLE_NAME और शरीर (HTML code) article_files.html को गुजर रहा हूँ है। शरीर जैसा दिखता है,

<h1>Hai</h1> 
<p>Welcome<em>Ajay</em></p> 

समस्या यह है कि शरीर के रूप में प्रदर्शित होता है। यह है कि सभी टैग के साथ स्क्रीन में एचटीएमएल कोड मुद्रित है। मैं इस एचटीएमएल कोड (शरीर) की तरह,

हाई
को रखना चाहते हैं आपका स्वागत है अजय

मेरे HTML फ़ाइल है:

$def with(title,content) 
<html> 
<head> 
<title>$title</title> 
</head> 
<body> 
    <form name="form" method="GET"> 
     $content 
    </form> 
</body> 
</html> 

उत्तर

11

एचटीएमएल एस्केपिंग वेब में डिफ़ॉल्ट रूप से चालू है। पाई टेम्पलेट्स। इसे बंद करने के लिए, को कोलन से चर नाम पहले जोड़ें:

<form name="form" method="GET"> 
    $:content 
</form> 

यकीन है कि वहाँ एक संभावित दुर्भावनापूर्ण उपयोगकर्ता के लिए कोई रास्ता नहीं है अपने छोड़ा जाएगा टेम्पलेट्स में मनमाने ढंग से एचटीएमएल को खिलाने के लिए है।

+0

धन्यवाद Helgi। कोड अब बहुत अच्छा काम करता है। –

2

आपको ब्राउज़र पर भेजे जाने वाले दिनांक के mime type निर्दिष्ट करने की आवश्यकता है, अन्यथा यह नहीं पता कि इसे कैसे प्रदर्शित किया जाए।

आप अपने कार्य करने के लिए following line जोड़ कर ऐसा कर सकते हैं:

web.header('Content-Type', 'text/html') 
+1

मुझे पूरा यकीन है कि अजय _body_ (यानी, 'एच 1' और' पी') के बारे में बात कर रहा है, पूरे पृष्ठ पर नहीं, शब्दशः प्रस्तुत किया जा रहा है। – Helgi

+0

यकीन नहीं है कि डाउनवॉट्स क्यों। यहां तक ​​कि अगर शरीर को प्रस्तुत नहीं किया जा रहा था, यह अभी भी सहायक है। मेरी समस्या हल, ऊपर उठाया। – sqram