summaryrefslogtreecommitdiff
path: root/cgi-bin/page.py
diff options
context:
space:
mode:
Diffstat (limited to 'cgi-bin/page.py')
-rw-r--r--cgi-bin/page.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/cgi-bin/page.py b/cgi-bin/page.py
new file mode 100644
index 0000000..300069a
--- /dev/null
+++ b/cgi-bin/page.py
@@ -0,0 +1,77 @@
+#!C:\Python364\python3.exe
+# -*- coding: utf-8 -*-
+import sys, codecs
+import cgi, cgitb
+import pymysql
+import issuedb
+import config
+from issuedb import IssueDBFactory
+from config import Config
+
+sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
+
+db = IssueDBFactory.produce()
+cursor = db.cursor()
+
+tag_unit_html_file = open("tag_unit.html", 'r', encoding='utf8')
+page_html_file = open("page.html", 'r', encoding= 'utf8')
+issue_unit_html_file = open("issue_unit.html", 'r', encoding = 'utf8')
+page_html = page_html_file.read()
+issue_unit_html = issue_unit_html_file.read()
+tag_unit_html = tag_unit_html_file.read()
+
+issues_list = ""
+issues_count = Config.get("config", "issues_count")
+try:
+ cursor.execute("select * from issue limit 0, 10")
+ issues_rows = cursor.fetchall()
+ odd = True
+ for row in issues_rows:
+ tagslist = ""
+ cursor.execute("select * from tag where tagId in (select tagId from \
+ relation where issueId = {0})".format(row[0]))
+ tags_rows = cursor.fetchall()
+ for tag_row in tags_rows:
+ tag = tag_unit_html.format(\
+ tagid = tag_row[0],
+ tag_name = tag_row[1]
+ )
+ tagslist += tag
+ issue = issue_unit_html.format(\
+ issueid = row[0], \
+ title = row[1], \
+ description = row[2], \
+ tags = tagslist, \
+ oddoreven = ((odd == True) and "odd" or "even")
+ )
+ odd = not odd
+ issues_list += issue
+except:
+ print("Error: unable to fetch data")
+
+#处理页号
+form = cgi.FieldStorage()
+pagen = form.getvalue('p')
+if pagen == None:
+ pagen = 0
+pageprev = pagen - 1
+if pageprev < 0:
+ pageprev = 0
+pagenext = pagen + 1
+
+page = page_html.format(\
+ issues = issues_list, \
+ page_prev = pageprev, \
+ page_next = pagenext,\
+)
+
+# HTTP header
+print("Content-type:text/html\n")
+print(page)
+
+db.commit()
+cursor.close()
+db.close()
+issue_unit_html_file.close()
+page_html_file.close()
+