みんな :) 私は "http://key.xxxxxx.org:10093/?q=" のように検索できるデータベースを持っています URL にキーワードを入力すると (= マークの後ろ)、多くの json データを表示できます。
ここで、GAE で webapp2 を使用する単純な webapp を作成します。/search ページでキーワードを入力すると、/result ページの jsondata コンテンツを解析できます。コードの私の部分は次のとおりです。
# -*- coding: utf-8 -*-
import os
import re
import httplib
import json
import urllib
from string import letters
import webapp2
import jinja2
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
autoescape = True)
def render_str(template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def renderJson(query):
conn = httplib.HTTPConnection('xxx.xxxxx.org:10093')
conn.request('GET', '/?q=%s' % urllib.quote_plus(query))
res = conn.getresponse()
data = res.read()
j = json.loads(data)
results = []
result = j['data']['group'][0]['resultitem']
for l in result:
for k,v in l.items():
if k == 'word':
results.append(l[k])
return results
class BaseHandler(webapp2.RequestHandler):
def render(self, template, **kw):
self.response.out.write(render_str(template, **kw))
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
class Search(BaseHandler):
def get(self):
self.render("search.html")
def post(self):
q = self.request.get('query')
if q:
self.redirect('/result/?q='+query)
class Result(BaseHandler):
def get(self):
q = self.request.get('query')
self.render('result.html', query = q, result = renderJson(q))
app = webapp2.WSGIApplication([
('/search', Search),
('/result', Result)
],
debug=True)
search.htmlに、私は書きました
<input type="text" name="q" value="{{query}}"></input>
そしてresult.htmlで
<p>{{result}}</p>