私はPythonに比較的慣れていないので、私のタイトルはほとんどすべてを語っています。私はここを見て、私が見つけることができる最も近いものはPythonではなくPHPで行われました.
私が書いたコードは、検索ボタンをクリックして検索を実行し、提供されたスペースに入力されたキーワードをデータベースで検索し、Web ページの行内にそのキーワードに対応するすべての URL を表示することです。
ここで、すべてのキーワードを含むページの読み込み時にドロップダウン メニューを設定する必要があります。キーワードをクリックすると、キーワードを入力するのと同じように検索が実行されます。私のドロップダウンは、テキストが含まれている場合と含まれていない場合がある列 k1-k13 をプルします。重複した単語や空白のフィールドを切り取るためにdistinctを使用する予定ですが、少なくとも最初に機能させたいと思っていました。XML で記述されたドロップダウンがあります。
これが私が得たものです:
#!/usr/bin/env python2.7
import sys
import sqlite3
from string import Template
from cgi import FieldStorage
from dateutil import parser
from textwrap import dedent
from eicpy.www import CGIHandler
from eicpy.sql import ezsql
from eicpy import www
from eicpy import cgierror
cgierror.enable(display=True)
DB = ezsql().connect("/usr/HTTPServer/dev7/data/asq1.db")
class Page(CGIHandler):
def handle1(self):
search_terms = self.fs.getfirst("searchinp", None)
if search_terms:
fields = search_terms.split(" ")
steps = []
apps = []
for field in fields:
recs = DB.execute("select issue, url, steps from help where k1='%s' or
k2='%s' or k3='%s' or k4='%s' or k5='%s' or k6='%s' or k7='%s' or
k8='%s' or k9='%s' or k10='%s' or k11='%s' or k12='%s' or k13='%s'" %
(field, field, field, field, field, field, field, field, field, field,
field, field, field)).fetchall()
#self.debug(recs)
for r in recs:
if r.steps == "S":
steps.append({
"issue" : r.issue,
"size" : "600x460",
"location" : "/" + r.url
})
if r.steps =="A":
apps.append({
"issue" : r.issue,
"size" : "600x460",
"location" : "/" + r.url
})
#self.debug(steps)
#self.debug(apps)
self.show({"steps": steps, "apps": apps})
else :
self.show({})
if __name__ == '__main__':
p = Page('Agent Support Query'
,'pt/asq.xml'
, ['/styles/asq.css'])
p.handle1()