私はいくつかのテキストを入力として受け取り、pythonスクリプトを実行し、新しいページに行くことを除いて、同じhtmlページの出力を吐き出すフラスコアプリを持っています。なぜ新しいページに行くのかわかりません。フラスコアプリの同じページに出力結果を投稿するにはどうすればよいですか?
これは私のapp.pyファイルです:
#!/usr/bin/env python3
from flask import *
from flask import render_template
from myclass import myfunction
app = Flask(__name__)
@app.route('/')
def homepage():
return render_template('index.html')
@app.route('/', methods= ["POST"])
def background_process():
if request.method == 'POST':
try:
story = request.form.get('story')
if story:
result = myfunction(story)
return render_template('index.html', **jsonify(result))
else:
return jsonify(result='Input needed')
except Exception as e:
return (str(e))
if __name__ == "__main__":
app.debug=True
app.run()
そして、これが私のindex.htmlファイルです:入力が与えられると
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="../static/main.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type=text/javascript>
$(function() {
$('a#process_input').bind('click', function() {
$.getJSON('/background_process', {
story: $('textarea[name="story"]').val(),
}, function(data) {
$('#result').text(data.result);
});
return false;
});
});
</script>
</head>
<body>
<div class='container'>
<form>
<textarea id="text_input" rows="20" cols="80" name=story></textarea>
<br>
<a href=# id=process_input><button class='btn btn-default'>Submit</button></a>
</form>
<br>
<p><h2 align='center'>Result:</h2><h2 id=result align='center'></h2></p>
</div>
</body>
</html>
、それはJSONに新しいページに結果を示していますフォーマット。私は同じページにそれを示したい。ここで何がうまくいかないの? ありがとう!
あなたは( 'はmy_functionを投稿していなかった)'行うに思われます主要な仕事。 –
500語を処理するのにどれくらい時間がかかりますか? –
秒未満です。私は問題が要求を得ることにあると思う。たぶん、多くのテキストを要求することはできません。私は投稿を使ってみましたが、同じページで出力を得ることができません。 – 0x1