フォームから関数に値を渡して処理し、別の関数で関数を呼び出そうとしています。基本的に、ユーザーは検索語を送信します。呼び出された関数に渡されprocess
、現在処理されている用語が辞書として返されます。このresults
関数では、用語が検索エンジン API に解析され、結果が HTML または JSON 形式で返されます。ただし、関数process
は処理された用語の代わりに何も返しません。誰が私が間違っているのか教えてもらえますか? これは web2py で行われているため、コードの一部が奇妙に見えるかもしれませんが、問題は web2py ではなく python にあると思います
import urllib2
def index():
form = FORM('',
INPUT(_name='query', requires=IS_NOT_EMPTY()),
INPUT(_type='submit'))
if form.process().accepted:
redirect(URL('results'))
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill the form'
return dict(form=form)
def __process():
term=request.vars.query
#do some processing
return dict(term=term)
def results():
import urllib2
address = "http://www.blekko.com/?q=%(term)s+/json&auth=<mykey>" % __process()
results = urllib2.urlopen(address).read()
return dict(results=results)