1

我的 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))

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

<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>

现在,我想手动传递一个特定的数据(一个注册号),而不使用表单中的提交按钮,到 python 脚本(或者 url,也许),使用 Javascript,比如说一个触发 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?

4

2 回答 2

2

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

于 2012-06-26T21:45:30.917 回答
1

我不是 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. 从 annauniv 网络服务器请求信息
  4. 解析来自该服务器的响应(您自己解析,但无论如何您都必须这样做)
  5. 将 GPA 存储为模板字典以在模板中使用
于 2012-06-26T21:53:14.513 回答