0

我对 python 比较陌生,我的标题几乎说明了一切。我看了看这里,我能找到的最接近的是用 PHP 而不是 python 完成的。

我编写的代码是执行搜索,单击搜索按钮,在我的数据库中搜索在提供的空间中键入的关键字,并在我的网页上的行中显示所有与该关键字对应的 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()
4

0 回答 0