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

📄 stdpage.py

📁 python web programming 部分
💻 PY
字号:
import urllib
from dtuple import TupleDescriptor, DatabaseTuple

StdPageBody = open("text/StdPageBody.txt").read()
DefaultBody = open("text/DefaultBody.txt").read()

#
# Left-Hand Navigation Bar
#
def LHNav(ThisPage, CR):
    dt = TupleDescriptor([["Name"], ["LinkText"], ["Template"]])
    CR.execute("""SELECT Name, LinkText, Template FROM StdPage
                    WHERE PageSet='Std' ORDER BY Num""")
    SP = CR.fetchall()
    LHNavBar = []
    for sp in SP:
        sp = DatabaseTuple(dt, sp)
        if sp.Template == "None":
            tname = "StdPage"
        else:
            tname = sp.Template
        if sp.Name != ThisPage:
            mgtext = """<img src="/HWimages/cblob.gif" border=0 alt="" width=10 height=8>
                        <a href="/xitami1/?page=%s&Name=%s">%s</a>""" % (tname, urllib.quote(sp.Name), sp.LinkText)
        else:
            mgtext = """<img src="/HWimages/rblob.gif" width=10 height=8 border=0 alt="">""" + str(sp.LinkText)
        LHNavBar.append("<nobr>%s</nobr><br><br>" % (mgtext,))
    LHNavBar = "".join(LHNavBar)
    return LHNavBar

#
# Default site page
#
def default(form, req, CR):
    CR.execute("""SELECT Name, LinkText, Template FROM StdPage
            WHERE PageSet='Std' ORDER BY Num""")
    SP = CR.fetchall()
    ct = 0
    FtrNavBar = []
    for sp in SP:
        template = sp[2]
        if template == "None": template = "StdPage"
        FtrNavBar.append("""<nobr>
        <img src="/HWimages/cblob.gif"><a href="/xitami1/?page=%s&Name=%s">%s</a></nobr>&nbsp;""" % \
                (template, urllib.quote(sp[0]), sp[1]))
        ct = ct + 1
        if ct == 8:
            ct = 0
            FtrNavBar.append("<BR>")
    return DefaultBody % ("".join(FtrNavBar), )

#
# Page Body Builder (XXX UNSOPHISTICATED)
#
def PageBody(LinkText, LHNav, Content, EditLink=None):
    if EditLink:
        Link = """<font size="-3"><center><A HREF="?page=%s">EDIT
        THIS PAGE</a></center></font>""" % (EditLink, )
    else:
        Link = ""
    return StdPageBody % (LinkText, LHNav, Content, Link)

#
# Standard Page
#
def StdPage(form, req, CR):
    try:
        StdPageName = form["Name"].value
    except KeyError:
        return "<h2>Name not given for standard page display</h2>"
    # XXX lines below should be replaced with DatabaseTuple
    FldList = (['Name'], ['LinkText'], ['PageSet'], ['Num'], ['Content'])
    dt = TupleDescriptor(FldList)
    CR.execute("""SELECT Name, LinkText, PageSet, Num, Content
            FROM StdPage WHERE  Name=? AND PageSet='Std'""",
                            (StdPageName, ))
    TP = CR.fetchone()
    if TP == None:        # Use a page which should always exist
        CR.execute("""SELECT Name, LinkText, PageSet, Num, Content
                FROM StdPage WHERE Name='ERROR'""")
        CR.fetchone()
    rec = DatabaseTuple(dt, TP)
    LHNavBar = LHNav(StdPageName, CR)
    return PageBody(rec.LinkText, LHNavBar, rec.Content, "FormStdPage&Key="+StdPageName)


⌨️ 快捷键说明

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