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

📄 deptpages.py

📁 python web programming 部分
💻 PY
字号:
#
# $Workfile: DeptPages.py $ $Revision: 3 $
# $Date: 10/04/01 5:07p $ $Author: Sholden $
#
import Dept

from cachequery import CacheQuery
from dbsource import dbsource

conn = dbsource().conn
cursor = conn.cursor()
qPlnk = CacheQuery("PageText",
                    ("PtxLinkText", "PtxSetNum", "PtxLink"),
                    ("PgpSetName", ),
                    conn, refresh=30)
qPttl = CacheQuery("PageText",
                    ("PtxTitle", "PtxContent"),
                    ("PgpSetName", "PtxSetNum"),
                    conn, ORDER=("PtxSetNum", ), refresh=30)

class Home(Dept.Page):

    def Body(self):
        if self.op.upper() == "GET":
            text = self.DeptHeader() + self.dpt.DptWelcome
        else:
            text = "Sorry. The operation you requested is invalid."
        return text


class Links(Dept.Page):

    def Links(self):
        result = ["""<BR><P><FONT SIZE="-1">"""]
        for row in self.lnk:
            result.append("""<A HREF="http://%s">%s</A><HR>""" % row.asTuple())
        result.append("""</FONT></P>""")
        return "\n".join(result)

    def Body(self):
        if self.op.upper() == "GET":
            text = "%s<B>%s</B></P>%s" % (self.DeptHeader(), "Additional Links", self.Links())
        else:
            text = "Sorry. The operation you requested is invalid."
        return text


class News(Dept.Page):

    def News(self):
        result = ["""<BR><P>"""]
        for row in self.Nws:
            result.append("""<A HREF="/DeptNewsItem/%s/%s">%s</A><BR><BR>""" % row)
        result.append("""<FONT></P>""")
        return "\n".join(result)

    def Body(self):
        if self.op.upper() == "GET":
            text = self.DeptHeader()+"<B>%s</B><BR>%s" % ("News", self.News())
        else:
            text = "Sorry. The operation you requested is invalid."
        return text


class NewsItem(Dept.Page):

    def Body(self):
        stmt = "SELECT NwsHead, NwsCopy from newsitem WHERE NwsNum=?"
        cursor.execute(stmt, (self.path[0], ))
        rows = cursor.fetchall()
        assert len(rows) == 1
        NwsHead, NwsCopy = rows[0]
        return self.DeptHeader()+"<B><I>%s</I></B><br>%s" % (NwsHead, NwsCopy)


class Qod(Dept.Page):

    def Body(self):
        result = [self.DeptHeader(),
                    """<B><I>Question of the Day</I></B><BR><BR>%s<BR><BR>%s<BR><BR>""" %
                     self.qod[1:3]]
        result.append("""<A HREF="/DeptQodAns/%s">Click for the answer</A>""" % self.dpt.DptCode)
        return "\n".join(result)


class QodAns(Dept.Page):

    def Body(self):
        return """%s<B><I>Answer of the Day</I></B><BR><BR>%s<BR><BR>""" % \
                    (self.DeptHeader(), self.qod[3])


class PgPage(Dept.Page):

    def Body(self):

        if len(self.path) >= 2:
            self.PgpSetName = self.path[0]
            self.PtxSetNum = self.path[1]
            self.path = self.path[2:]   # XXX Need _shftpth() method?
            linkdata = qPlnk((self.PgpSetName, ))
            self.pttl = qPttl((self.PgpSetName, self.PtxSetNum))[0]
            # XXX should check that the page group+number actually exists
            result = [self.DeptHeader(), '<font size="-2"><center>']
            links = []
            for PtxLinkText, PtxSetNum, PtxLink in linkdata:
                if not PtxLink:
                    PtxLink = "DeptPgPage"
                if PtxSetNum != self.PtxSetNum:
                    links.append('<A HREF="/%s/%s/%s/%s">%s</A>' % (PtxLink, self.DptCode, self.PgpSetName, PtxSetNum, PtxLinkText))
                else:
                    links.append(PtxLinkText)
            result.append(" | ".join(links)) # XXX need sensible multiline behavior here
            result.append('</center></font>')
            result.append("<BR><HR>%s" % (self.pttl.PtxContent))
            return "\n".join(result)
        else:
            return "<P><B>Need a page group and group number</B></P>"

⌨️ 快捷键说明

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