⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtform.py

📁 python web programming 部分
💻 PY
字号:
#!C:/Python20/python.exe
#
import cgi
import dtuple
import mx.ODBC.Windows as odbc
from jetCursor import jetCursor

class NoSuchPage:   # Exception
    pass

cn = odbc.connect("WebData")
cr = jetCursor(cn.cursor(), cn)

fldDsc = dtuple.TupleDescriptor((
        ("name", ), ("description", ), ("key", ), ("size", )
    ))

cols = (
        ("PgName", "Page Name",     1, 25),
        ("PgNum",  "Page Sequence", 0, 5),
        ("PgText", "Page Content",  0, (4, 40))
    )
colDsc = dtuple.TupleDescriptor(cols)

# Iterate over cols to get name of key field (1 only,
# not a textarea, assumed) and list of field names
fieldnames = []
for rec in cols:
    rec = dtuple.DatabaseTuple(fldDsc, rec)
    if rec.key:
        keyname = rec.name
    fieldnames.append(rec.name)

form = cgi.FieldStorage()
print """Content-Type: text/html\n
<HTML>
  <HEAD>
    <TITLE>Mini-Web Data Entry/Edit Form</TITLE>
  </HEAD>
  <BODY>
  <H2>Automated Edit Form</H2>
  <TABLE>"""
try:
    if form.has_key(keyname):  # edit existing page
        keyval = form[keyname].value
        sql = cr.SELECT(fieldnames, FROM="PgData",
                WHERE=keyname+"=?")
        newpage = 0
        cr.execute(sql, (keyval,))
        data = cr.fetchall()[0] # assume one row!
        if len(data) == 0:
            raise NoSuchPage
        data = dtuple.DatabaseTuple(colDsc, data)
        op = "Update"
    else:                       # create new page
        newpage = 1
        op = "Create"
    print """
        <H2>%s Mini-Web Page Data</h2>
        <FORM METHOD="POST" ACTION="wdupdt.py">
        """ % op
        # generate form field for each database column
    for col in cols:
        col = dtuple.DatabaseTuple(fldDsc, col)
        ff = """<TR><TD VALIGN="TOP">%s:</TD><TD>""" % col.description
        if newpage:
            dval = ""
        else:
            dval = data[col.name]
        if col.key and not newpage:
            ff += data[col.name]
            ftype = "HIDDEN"
        else:
            ftype = "TEXT"
        if type(col.size) == type(1):
            ff += """<INPUT NAME="%s" TYPE="%s" """ \
                    """LENGTH="25" VALUE="%s">"""\
                     % (col.name, ftype, dval)
        else:
            ff +="""<TEXTAREA COLS="50" ROWS="7" """ \
                    """NAME="PgText">%s</TEXTAREA><BR>""" % dval
        ff += "</TD><TR>"
        print ff
    print """
    <TR><TD></TD><TD><INPUT NAME="op" TYPE="SUBMIT" VALUE="%s">""" % op
    if not newpage:
        print """
    <INPUT NAME="op" TYPE="SUBMIT" VALUE="Delete"
                 OnClick="return(confirm('Do you REALLY""" \
                 """ want to delete this record?'))">"""
    print """
    </FORM></TD></TR>
    </TABLE>
"""
except NoSuchPage:
    print """<H2>Page %s Not Found</H2>
    <P><A HREF="wdlist.py">Return to page list</A>""" % PgName
cr.close()
cn.close()
print """
  </BODY>
</HTML>
"""

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -