从非选择/输入HTML属性Python获取内容?

时间:2018-04-06 00:10:35

标签: javascript python html flask

我在以下属性中使用JS填充了一些动态生成的内容:

<div id="connection" class="fp"> XX </div>

如何在Python代码中提供生成的内容“XX”?

我正在使用Flask框架。我知道使用Input和Select属性是可能的,例如,

<input name= EMAILS type="email">

然后,

@app.route("/", methods=['POST'])
def upload():
    request.form.get('EMAILS')

<p><div>无法实现。

1 个答案:

答案 0 :(得分:0)

您可以使用ajax。首先,在您的模板(名为home.html)中,使用jquery

创建一个脚本
<html>
  <body>
   <div id="connection" class="fp"> XX </div>
   <button id="hit" type="button" name="">get text</button>
   <div id='placeholder'></div>
  </body>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"> </script>
 <script>
  $(document).ready(function() {
   $('#hit').click(function() {
    var text = $('#connection').text();
   $.ajax({
    url: "/get_text",
    type: "get",
    data: {result:text},
    success: function(response) {
    $("#placeholder").html(response);
    },
     error: function(xhr) {
      //Do Something to handle error
   }
    });
 });
 });
</script>
</html>

单击该按钮时,将捕获div元素中的文本并将其发送到后端。但是,后端也必须返回响应。为此,使用flask创建路由,并访问ajax返回的结果,并返回一些HTML:

@app.route('/')
def home():
  return flask.render_template('home.html')

@app.route('/get_text')
def get_text():
  returned_result = flask.request.args.get('result')
  print(returned_result)
  #do something with returned_result
  return '<strong>Thanks!</strong>'

当我运行脚本时,下面的结果将打印到终端:

XX