将返回的数据从Python传递到JavaScript?

将返回的数据从Python传递到JavaScript?,python,Python,当我开发一个用于预订公交车车票的聊天机器人时,我会手动从用户那里获得请求,并根据API中的用户请求返回响应,我几乎做到了,但在使用我的IP地址将返回的数据从Python传递到JavaScript时,我有疑问。请任何人帮帮我 这是我的简历: import requests,json import requests, json from flask import render_template import os import time from flask import render_templa

当我开发一个用于预订公交车车票的聊天机器人时,我会手动从用户那里获得请求,并根据API中的用户请求返回响应,我几乎做到了,但在使用我的IP地址将返回的数据从Python传递到JavaScript时,我有疑问。请任何人帮帮我

这是我的简历:

import requests,json
import requests, json
from flask import render_template
import os
import time
from flask import render_template, Flask, request
from chatterbot.trainers import ListTrainer
from chatterbot import ChatBot
# # import win32api
#
# win32api.MessageBox(0, 'hello', 'title')
app = Flask(__name__)
@app.route('/',methods=['GET','POST'])
def map():
    return render_template("sara.html")

@app.route('/run',methods=['GET','POST'])
def main():
    print("run")
    url = 'http://webapi.i2space.co.in/Buses/Sources'
    payload = {'some': 'data'}
    headers = {'consumerkey': 'D0106432CD19C98E0E8267EDFE9E3DF0', 'consumersecret': '43DEC493EBAE756BF7A2312F55FE5132'}
    r = requests.get(url, data=json.dumps(payload), headers=headers)
    print(r.text)
    # response_data = r.json()
    response_data = json.loads(r.text)
    # print(type(response_data))
    # s=(response_data[0]['Name'])
    # print(s)
    sorceid=request.args.get('sid')
    print(sorceid)
    l=''
    for a in response_data:
        print("hello")
        print(a)
        print(a['Name'])
        if (sorceid==a['Name']):
            l=a['Id']
            print(l)
            break
        else:
            print("no")
        # list={"iden":l}
        # print(list)
    return render_template("sara.html",l=l)

if __name__ == '__main__':
   app.run(host='192.168.1.80')
以下是我的JavaScript:

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="/static/style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
      <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
  </head>
  <body>
  <h1> HERE COMES!!!</h1>
  {{ l }}

<div class="w3-container w3-teal" align="center" style="width: 50%">
  <span>Bus-Bot</span>
</div>

 <div class="w3-container" align="center" style="width: 50%">

      <div id="chatbox">
       <p class="botText"> Bus-Bot:<span>Hi! I'm Bus-Bot.</span></p>
      </div>
      <div id="userInput">
          <input id="textInput" type="text" name="msg">
        <input id="buttonInput" type="submit" value="submit" >
      </div>

      <script>
        function getBotResponse() {
          var rawText = $("#textInput").val();
          var userHtml = '<div id="Chatid" class="container">'+
              '<p class="userText" >ME:<span>' + rawText + '</span></p>'+'</div>';
          $("#chatbox").append(userHtml);
          document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
        $.get("run", { msg: rawText }).done(function (data) {
              alert(data);
              var sou=data.l;
              alert(sou);
              alert(lol);
            var botHtml = '<div id="botcon" class="container darker">'+'<p class="botText">Bus-Bot:<span>' + sou + '</span></p>'+'</div>';
            console.log(botHtml);
            $("#botcon").append(botHtml);
            document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
          });


        }
        $("#textInput").keypress(function(e) {
            if(e.which == 13) {
                getBotResponse();
            }
        });$("#lolInput").keypress(function(e) {
            if(e.which == 13) {
                alert('weldone');
                getBotResponse();
            }
        });
        $("#buttonInput").click(function() {
          getBotResponse();
        })
      </script>
     <style>
         .container {
    border: 2px solid #dedede;
    background-color: #f1f1f1;
    border-radius: 5px;
    padding: 10px;
    margin: 10px 0;
}

/* Darker chat container */
.darker {
    border-color: #ccc;
    background-color: #ddd;
}

/* Clear floats */
.container::after {
    content: "";
    clear: both;
    display: table;
}

/* Style images */
.container img {
    float: left;
    max-width: 60px;
    width: 100%;
    margin-right: 20px;
    border-radius: 50%;
}

/* Style the right image */
.container img.right {
    float: right;
    margin-left: 20px;
    margin-right:0;
}

/* Style time text */
.time-right {
    float: right;
    color: #aaa;
}

/* Style time text */
.time-left {
    float: left;
    color: #999;
}
     </style>

 </div>
    </div>

  </body>
</html>
从Python中,我使用变量名l返回了响应,但我不知道如何将这个变量传递给JavaScript,我想在这一行下面得到我的响应

var botHtml = '<div id="botcon" class="container darker">'+'<p class="botText">Bus-Bot:<span>' + sou + '</span></p>'+'</div>'; 
Flask中的render_模板函数不会将任何变量从一种语言传递到另一种语言。它只是将找到的html模板中的字符串替换为您向其移交的变量。与

return render_template("sara.html",l=l)
您告诉程序获取sara.html模板,并在模板中找到{{l}}的任何地方插入变量l。您应该在发送给客户端的实际HTML中看到它。因为您正在将其插入标题下:

<h1> HERE COMES!!!</h1>
  {{ l }}
在服务器内部,最好保存在客户端Javascript中

url = 'http://webapi.i2space.co.in/Buses/Sources'
payload = {'some': 'data'}
headers = {'consumerkey': 'D0106432CD19C98E0E8267EDFE9E3DF0', 'consumersecret': '43DEC493EBAE756BF7A2312F55FE5132'}
r = requests.get(url, data=json.dumps(payload), headers=headers)