📄 dtform.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 + -