Flask를 사용하여 웹 응용 프로그램을 작성 중이며 Brython에서 browser.ajax 기능을 사용하려고하지만 실행 가능한 예제를 찾을 수 없습니다. 누군가가 Brython에서 ajax를 사용하는 간단한 예제를 보여 주면 아주 좋을 것입니다. 보다 구체적으로, 사용자가 입력 한 데이터를 제출 버튼을 클릭하여 텍스트 영역에 텍스트 영역으로 전달하는 방법. 어떤 도움을 주셔서 감사합니다!Brython에서 ajax를 사용하는 방법
(위의 질문을 게시 한 후 몇 주를 쓰고 있습니다). Flask (http://runnable.com/UiPhLHanceFYAAAP/how-to-perform-ajax-in-flask-for-python)에 아약스를 구현하는 방법에 대한이 자습서를 읽고 jryery.ajax를 Brython으로 대체하려고 시도했습니다. 불행히도, 나는 아직도 그것을 얻을 수 없습니다. 여기 내 코드입니다 :
플라스크의 부분 :
@app.route('/')
def index():
return render_template('index.html')
@app.route('/_add_numbers')
def add_numbers():
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
return jsonify(result=a + b)
Brython/HTML : 내가 얻을 것은 "결과가"
<body onload="brython()">
<script type="text/python">
from browser import document as doc
from browser import ajax
def on_complete(req):
if req.status==200 or req.status==0:
doc["txt_area"].html = req.text
else:
doc["txt_area"].html = "error "+req.text
def get(url):
req = ajax.ajax()
a = doc['A'].value
b = doc['B'].value
req.bind('complete',on_complete)
req.open('GET',url,True)
req.set_header('content-type','application/x-www-form-urlencoded')
req.send({"a": a, "b":b})
doc['calculate'].bind('click',lambda ev:get('/_add_numbers'))
</script>
<div class="container">
<div class="header">
<h3 class="text-muted">How To Manage JSON Requests</h3>
</div>
<hr/>
<div>
<p>
<input type="text" id="A" size="5" name="a"> +
<input type="text" id ="B" size="5" name="b"> =
<textarea type="number" class="form-control" id="txt_area" cols="10" rows = '10'></textarea>
<p><a href="javascript:void();" id="calculate">calculate server side</a>
</div>
</div>
</body>
</html>
입니다 : 0. brython이 Flask의 view 함수에 데이터를 보내지 않는 것처럼 보입니다. 그러나 나는 그것을 수정하는 방법을 모른다. 어떤 사람이 정확히 내가 뭘 잘못하고 있는지 지적 할 수 있다면 좋을 것입니다.
정말 고마워요! 그것은 작동합니다! 내가 가진 유일한 질문은 : 수동으로 쿼리 문자열 (이 경우 "? a = % s & b = % s")에 인수를 포함해야합니까, 아니면 어떻게 든 자동으로 수행 할 수 있습니까? 다시 한번 고마워요! – chemist
정말 Post 메서드를 선호합니다. 어느 쪽이든, 그렇습니다. 인수는 "수동"으로 포함되어야합니다 - 브라우저는 양식 값을 수집하여 전체 페이지를 다시로드하는 이벤트에 제출할 것을 "알고 있습니다". – jsbueno