2011-08-08 7 views
12

위키 피 디아와 유사한 프로젝트로 처리하고 있습니다. 마크 다운을 사용하여 텍스트 파일을 html 코드로 변환 할 수 있습니다. 내 문제는,이 html 코드를 html 파일로 렌더링하고 싶습니다. 내 코드는 다음과 같습니다web.py에서 HTML 렌더링

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_files.html에 body_name과 body (html code)를 전달하고 있습니다. 몸 모양은 다음과 같습니다.

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

문제는 본체가 그대로 표시됩니다. 즉, HTML 코드가 모든 태그가있는 화면에 인쇄됩니다. 나는 이 아제

내 HTML 파일이 환영이 html 코드 (몸)와 같은,

하이
을 렌더링 할 :

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

답변

11

HTML 회피는 웹에서 기본적으로 설정되어 있습니다. py 템플릿. 이를 해제하려면 콜론 변수 이름 앞에 추가 :

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

당신의 이스케이프 템플릿에 임의의 HTML을 공급하는 악의적 인 사용자에 대한 방법이 없습니다 있는지 확인하십시오.

+0

감사 Helgi를. 코드는 이제 아주 잘 작동합니다. –

2

브라우저에 보내는 날짜의 mime type을 지정해야합니다. 그렇지 않으면 표시 방법을 알 수 없습니다.

당신은 당신의 함수에 following line을 추가하여이 작업을 수행 할 수 있습니다

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

저는 Ajay가 전체 페이지가 아닌 _body_ (즉, 'h1'과'p')가 축 어적으로 표현된다는 것을 알고 있습니다. – Helgi

+0

왜 downvotes 모르겠어요. 몸이 렌더링되지 않았더라도 여전히 유용합니다. 내 문제를 해결, upvoted. – sqram