Jquery googleappengine中ajaxpost请求后的方法渲染

Jquery googleappengine中ajaxpost请求后的方法渲染,jquery,ajax,google-app-engine,webapp2,Jquery,Ajax,Google App Engine,Webapp2,我正在使用Ajax$.post()将表单内容发布到google app engine中的控制器。表单基本上是使用html5地理定位和用户输入来查找lat/lng <form method="post" id="simple-form" action="/search"> <div> <input type="text" placeholder="Keyword" name="searchQuery" id="

我正在使用Ajax$.post()将表单内容发布到google app engine中的控制器。表单基本上是使用html5地理定位和用户输入来查找lat/lng

        <form method="post" id="simple-form" action="/search">
        <div>
            <input type="text" placeholder="Keyword" name="searchQuery"  id="searchQuery">
            <input type="button" id="simple-submit-button">
        </div> </form>
使用jquery$.post()将内容发布到方法并呈现另一个页面

function submitform() {
    var where = $("#simple-firm").attr("action");
    var fi = $("#Latitude").val();
    var fj = $("#Longitude").val();
    var gk = $("#searchQuery").val();
    var what = {Latitude: fi, Longitude: fj, searchQuery: gk};
    $.post(where, what, handleResponse, "json");
}
下面是我的router.py

from webapp2 import WSGIApplication
from webapp2 import Route

app = WSGIApplication([
    Route('/search', handler='app.serp.Search'),
}
还有我的方法

class Search():
def get(self):
    self.redirect('/')

def post(self):
    query_name = self.request.get('searchQuery')
    lat = float(self.request.get('Latitude'))
    lng = float(self.request.get('Longitude'))
    print query_name,lat, lng
    #self.response.out.write('<html><body>You wrote:<pre>')
    self.render('serp/serp.html')
class Search():
def get(自我):
self.redirect(“/”)
def post(自我):
query\u name=self.request.get('searchQuery')
lat=float(self.request.get('Latitude'))
lng=float(self.request.get('Longitude'))
打印查询名称、lat、lng
#self.response.out.write('youwrite:')
self.render('serp/serp.html')

虽然我可以在我的终端中看到正在打印来自的query_name、lat、lng的值,但是self.render和self.response都没有显示。我基本上想呈现另一个名为serp.html的页面。这里出了什么问题。如何修复它

需要了解更多。但是,这里有一些东西可以尝试:

1) 检查日志以查看错误所在

2) 此项目的
/serp/
是否在
系统路径中?尝试:
self.render('serp.html')
self.render('/serp.html')
self.render('/serp/serp.html')


3) 使用金甲2号,也许还有烧瓶。这些使渲染模板变得简单。

需要了解更多信息。但是,这里有一些东西可以尝试:

1) 检查日志以查看错误所在

2) 此项目的
/serp/
是否在
系统路径中?尝试:
self.render('serp.html')
self.render('/serp.html')
self.render('/serp/serp.html')

3) 使用金甲2号,也许还有烧瓶。这些使渲染模板变得简单。

首先,阅读渲染模板。模板基本上只是html文件,您可以在为页面提供服务之前将自己的变量注入html中(或者您可以按原样提供html)

根据该文档判断,您可能希望执行以下操作:

然而,你的问题对我来说有点奇怪。您正在将html页面返回到AJAX post请求?通常,您可以:

  • 一个普通的HTTP帖子(不是AJAX,是同步的,基本上是一个普通的表单发布)和一个新的网页(你的html)文件
  • AJAX帖子,jquery/javascript处理响应,响应是XML或JSON,而不是html 您正在进行这两种操作的混合,AJAX将接收一个新的html页面,您仍然可以使其工作正常,但这有点奇怪。您可能会发现使用或xml进行响应更容易,并且通过设置post请求的名称,使用jquery/AJAX来处理或xml。您的呼叫。

    首先,阅读渲染模板。模板基本上只是html文件,您可以在为页面提供服务之前将自己的变量注入html中(或者您可以按原样提供html)

    根据该文档判断,您可能希望执行以下操作:

    然而,你的问题对我来说有点奇怪。您正在将html页面返回到AJAX post请求?通常,您可以:

  • 一个普通的HTTP帖子(不是AJAX,是同步的,基本上是一个普通的表单发布)和一个新的网页(你的html)文件
  • AJAX帖子,jquery/javascript处理响应,响应是XML或JSON,而不是html 您正在进行这两种操作的混合,AJAX将接收一个新的html页面,您仍然可以使其工作正常,但这有点奇怪。您可能会发现使用或xml进行响应更容易,并且通过设置post请求的名称,使用jquery/AJAX来处理或xml。你的电话

    class Search():
    def get(self):
        self.redirect('/')
    
    def post(self):
        query_name = self.request.get('searchQuery')
        lat = float(self.request.get('Latitude'))
        lng = float(self.request.get('Longitude'))
        print query_name,lat, lng
        #self.response.out.write('<html><body>You wrote:<pre>')
        self.render('serp/serp.html')
    
    import os
    import webapp2
    from google.appengine.ext.webapp import template
    
    # don't forget to extend webapp2.RequestHandler
    class Search(webapp2.RequestHandler):
        def get(self):
            self.redirect('/')
    
        def post(self):
            query_name = self.request.get('searchQuery')
            lat = float(self.request.get('Latitude'))
            lng = float(self.request.get('Longitude'))
            print query_name,lat, lng
    
            template_values = {
                'query_name': query_name,
                'lat': lat,
                'lng': lng
            }
            path = os.path.join(os.path.dirname(__file__), 'serp/serp.html')
            self.response.out.write(template.render(path, template_values))