ndb TextProperty에서 가져온 데이터와 함께 webapp2 페이지에 렌더링 된 html을 표시하는 데 도움이 필요합니다. 아래 예에서 삽입했습니다.webapp2 페이지의 ndb.TextProperty에서 html 데이터를 올바르게 표시하는 방법
<b>foo</b>
dev 서버의 데이터 저장소 뷰어에 가서 값이 저장되었는지 확인합니다. 그러나 Chrome에서 페이지를로드하면 렌더링 된 버전이 아니라 TextProperty에 삽입 된 것과 같이 표시됩니다. Chrome에서 View Source를 실행 한 결과이 코드가 게재 된 것으로 확인되었습니다.
<b>foo</b>
어떻게 수정할 수 있습니까?
다음은 세부 정보입니다. 다음과 같이
내 모델입니다 : 내 모델에 HTML 코드의 무리를 삽입 할 수있어
Models.py
=========
from google.appengine.ext import ndb
class MyPosts(ndb.Model):
slug = ndb.StringProperty(indexed=True)
content = ndb.TextProperty(indexed=False)
을 (본체 만 태그에 무엇을 할 것입니다).
여기 내 컨트롤러입니다. 내가 레코드를 다시 가져올 때 쿼리가 제대로 작동합니다. 또한 페이지가 성공적으로로드 될 때 경로에 문제가 없습니다.
Controller.py
=============
import os
from google.appengine.ext.webapp import template
import webapp2
from Models import MyPosts
class ViewMyPost(webapp2.RequestHandler):
def get(self,title):
ds = MyPosts.query(MyPosts.slug == title).fetch(1)
content = str(ds[0].content)
template_values = {
'body': content,
}
path = os.path.join(os.path.dirname(__file__), 'views/myview.html')
self.response.out.write(template.render(path, template_values))
여기 내 견해입니다. {{body}}의 값은 컨트롤러에서 제공합니다.
myview.html
===========
<html>
<head>
<title>My Page</title>
</head>
<body>
{{ body }}
</body>
</html>
데이터 삽입 : 내 TextProperty에 대해 다음 값으로 레코드를 삽입하는 간단한 루틴을 만들 을
<b>foo</b>
예상 결과 : 내가 foo는를 표시하는 페이지를 기대하고있어, {{body}}를 TextProperty 필드 값으로 직접 대체하는 것입니다.
실제 결과 : 대체 텍스트는 쿼리 한 전체 TextProperty 값을 되돌려 보냅니다. 그러나 어떻게 든 태그를 다음과 같이 변환합니다.
<b>foo</b>
무엇이 여기에 있습니까? 미리 감사드립니다!
그것은 간단한 수정했습니다에 대한 문서입니다. 보기에서 "안전"필터를 추가했습니다. {{body}} 대신 {{body | safe}}처럼 보입니다. myview.HTML ===========
해결책을 찾았습니까? 어쩌면 자신의 질문에 대답하고 답을 승인하여 답이없는 범주에 나타나지 않을 수도 있습니다. – dlebech
[webapp2는 HTML 태그를 순수 텍스트로 바꿀 수 있습니다] (http://stackoverflow.com/questions/16374332/webapp2-changes-html-tags-in-pure-text) –