如何通过“POST”方法将数据从Javascript传递到Python

How to pass data by 'POST' method to from Javascript to Python

本文关键字:Javascript Python 数据 何通过 POST 方法      更新时间:2023-09-26

我有这部分来自我的 GAE 应用程序的脚本,该应用程序使用 webapp2,它使用 post 接受来自表单的数据,

class RenderMarksheet(webapp2.RequestHandler):
   def post(self):
     regno = self.request.get('content')  # Here's where I extract the data from the form
     ...
     ...
     ...
     self.response.out.write(template.render(templates/render.html, template_values))

以及发布到此脚本的 Web 表单,

<form action="/sign" method="post" name="inputform" onsubmit="return validate()">
    Register No : <input type="number" name="regno" placeholder="Your Register No."/> 
                  <input type="submit" value="Get-My-GPA!" >
</form>

现在,我想手动将特定数据(寄存器编号),而不使用表单中的提交按钮,使用 Javascript(也许是 url)传递给 python 脚本(也许是 url),比如一个触发 javascript 方法的按钮。

我必须使用javascript(实现AJAX)发布数据。在python中,我这样做,将数据发布到url,

import http.client, urllib.parse
params = urllib.parse.urlencode({'regno':10109104021})
headers = {"Content-type": "application/x-www-form-urlencoded",
       "Accept": "text/plain"}
conn = http.client.HTTPConnection("mydomain:8888")
conn.request("POST", "/sign", params, headers)
response = conn.getresponse()
print(response.status, response.reason)
data = response.read()

如何通过Jquery或Javascript将数据发布到url?

最快的是使用jQuery并使用$.post()

我不是 100% 确定你想做什么,但经过几次重读,这就是我认为你想做的事情。

您需要导入 urllib2

#import google classes
import urllib2
class RenderMarksheet(webapp2.RequestHandler):
   def parseResponse(self, response):
        #run some code in here to parse the results since it's an HTML document ... beautifulsoup, perhaps?

   def post(self):
     regno = self.request.get('content')  
     rawlink = "http://result.annauniv.edu/cgi-bin/result/result11gr.pl?regno="  
     link = rawlink+regno 
     try:
       result = urllib2.urlopen(link)
       gpa = parseResponse(result)
     except urllib2.URLError, e:
       self.response.out.write(e)
     template_values =  {'gpa': gpa}
     self.response.out.write(template.render(templates/render.html, template_values))

此方法将

  1. 从表单中获取输入
  2. 建立链接
  3. 从年鉴网络服务器请求信息
  4. 解析
  5. 来自该服务器的响应(您自己解析它,但无论如何您都必须这样做)
  6. 存储 GPA 模板字典以在模板中使用