0

私の検索語は空の文字列としてハンドラーに届きます。コンポーネントは次のとおりです。

htmlフォーム:

<form class="navbar-search" action="/search">
                <input type="text" class="search-query span3 ajax-typeahead" placeholder="Search" data-link="/typeahead" name="searchQuery"  autocomplete="off" />
                <button class="btn btn-primary" style="margin-top: 0px;" type="submit">
                    <i class="icon-search icon-white"></i>
                </button>
            </form>

typeaheadのjquery:

<script type="text/javascript">
            $(document).ready(function() {
                $('.ajax-typeahead').typeahead({
                    source: function(query, process) {
                        return $.ajax({
                            url: $(this)[0].$element[0].dataset.link,
                            type: 'get',
                            data: {query: query},
                            dataType: 'json',
                            success: function(json) {
                                return typeof json.options == 'undefined' ? false : process(json.options);
                            }
                        });
                    }
                });
            });
        </script>

Python webapp2ハンドラー:

class SearchHandler(webapp2.RequestHandler):
    def get(self, searchQuery):
        self.response.out.write('Term: %s' % searchQuery)

app = webapp2.WSGIApplication([('/search(.*)', SearchHandler)],
                              debug=True)

そして結果:

ここに画像の説明を入力してください

私は問題を見つけることができないようです、助けてくれてありがとう

4

1 に答える 1

2

あなたのRequestHandlerことで:

class SearchHandler(webapp2.RequestHandler):
  def get(self):
    searchQuery = self.request.get('searchQuery')
    self.response.out.write('Term: %s' % searchQuery)

クエリ パラメータと URL マッピングを混同しています。

また、Python では、変数に lower_case_underscore 規則を使用することをお勧めします。

于 2013-03-15T09:04:08.933 に答える