8
이 문제를 해결하기 위해 JSON을 알고 있지만 문제가 있습니다.Python에서 Javascript (JSON)로 데이터 보내기
- 데이터가
- 데이터의 크기가 동적이기 때문에 파이썬 으로 계산, 그래서 난 내 출력을위한 별도의 HTML 테이블 행을 만들 자바 스크립트를 사용할 필요가 : 여기 내 접근 방식의 세부 사항입니다. 결과적으로 Javascript가 데이터를 '보도록'하기 위해 Python에서 JavaScript로 데이터를 전달해야합니다.
HTML 코드 (아래의 출력 페이지를 생성하기 위해 내 HTML 코드의 섹션) :
class OutputPage(webapp.RequestHandler):
def func (a,b):
return a+b #just an example
def get(self):
form = cgi.FieldStorage()
chem_name = form.getvalue('chemical_name')
Para1 = form.getvalue('Para1') #get values from input page--user inputs
Para1 = float(Para1)
Para2 = form.getvalue('Para2') #get values from input page--user inputs
Para2 = float(Para2)
out = func (Para1,Para1)
out_json=simplejson.dumps(out) # I need to send out to JavaScript
#writ output page
templatepath = os.path.dirname(__file__) + '/../templates/'
html = html + template.render (templatepath + 'outputpage_start.html', {})
html = html + template.render (templatepath + 'outputpage_js.html', {})
html = html + """<table width="500" class='out', border="1">
<tr>
<td>parameter 1</td>
<td> </td>
<td>%s</td>
</tr>
<tr>
<td>parameter 2</td>
<td> </td>
<td>%s</td>
</tr>
</table><br>"""%(Para1, Para2)
html = html + template.render(templatepath + 'outputpage_end.html', {})
#attempt to 'send' Python data (out_json) to JavaScript, but I failed.
html = html + template.render({"my_data": out_json})
self.response.out.write(html)
app = webapp.WSGIApplication([('/.*', OutputPage)], debug=True)
자바 스크립트 코드 (나는 즉시 파일 이름에 추가 입력 테이블 만들기 위해 자바 스크립트를 사용 : 'outputpage_js합니다. html ') :
<script>
<script type='text/javascript'>
$(document).ready(function(){
//I assume if my Json statement works, I should be able to use the following argument to create a HTML row
$('<tr><td>Parameter 2</td><td> </td><td>out_json</td>').appendTo('.app')
</script>
감사합니다. tadeck는 지적 :
try:
import simplejson as json
except:
import json
out = {'key': 'value', 'key2': 4}
print json.dumps(out)
편집 : 당신이 JSON을 "실행"할 필요가 없습니다
왜 정확히 HTML 코드를 생성 할 동일한 템플릿에서 데이터를 전달하려고하는지 설명해 주시겠습니까? 질문에 동적 로딩 (AJAX 같은)이 표시되지 않으며 Python을 사용하여 생성 할 수없는 템플릿의 일부만 생성하는 필수 JavaScript 코드는 아닙니다. 나 맞아? – Tadeck
@Tadeck, 자바 스크립트를 사용하는 이유는 자바 스크립트를 사용하여 HTML 표를 만들어야하기 때문입니다. 또한 데이터의 크기가 동적입니다. 따라서 JSON을 사용하여 JavaScript에 데이터를 전달하고이를 처리하도록하는 것이 더 바람직하다고 생각합니다. 또한 Jqplot을 사용하여 수치를 생성해야합니다. 현재 숨겨진 html 테이블에 모든 값을 생성하고 ID 이름을 선택하여 JavaScript를 가져옵니다. 그러나 나는 이것을 할 수있는 더 좋은 방법이 있어야한다고 생각합니다. –
@ Tao는 동적으로 업데이트되는 데이터입니까? 사용자가 페이지 새로 고침없이 즉석에서 데이터 변경 사항을 볼 수 있습니까? 동적 인 경우 JSON 만 반환하는 URL (HTML 없음)에서 JSON 데이터를 요청하려면 AJAX 코드가 필요합니다. 페이지가로드 될 때 데이터를 알면 페이지 템플릿에 JavaScript 데이터 구조 만 추가하면됩니다. JSON 또는 AJAX가 필요하지 않습니다. – jiggy