diff options
Diffstat (limited to 'cgi-bin/insert.py')
-rw-r--r-- | cgi-bin/insert.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/cgi-bin/insert.py b/cgi-bin/insert.py new file mode 100644 index 0000000..61f5cd9 --- /dev/null +++ b/cgi-bin/insert.py @@ -0,0 +1,59 @@ +#!C:\Python364\python3.exe +# -*- coding: utf-8 -*- +import sys, codecs +import cgi, cgitb +import pymysql +import issuedb +import time +from issuedb import IssueDBFactory +sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer) + +db = IssueDBFactory.produce() +cursor = db.cursor() + +form = cgi.FieldStorage() +title = form.getvalue('issue_title') + +tags = form.getvalue('issue_tags') +issue_desc = form.getvalue('issue_description') +issue_solve = form.getvalue('issue_solve') +tag_list = None +if tags != None: + tag_list = tags.split() + +query = "insert into issue (issueTitle, issueDesc, issueSolve, issueTime) values ('{0}', '{1}', '{2}', '{3}');".format(pymysql.escape_string(title), pymysql.escape_string(issue_desc), pymysql.escape_string(issue_solve), str(time.time())) + +cursor.execute(query) +db.commit() +issueId = cursor.lastrowid + +for tag in tag_list: + cursor.execute("select tagId from tag where tagName = '{0}'".format(tag)) + tagId = cursor.fetchone() + if tagId == None: + cursor.execute("insert into tag (tagName) values ('{0}');".format(tag)) + db.commit() + tagId = cursor.lastrowid + else: + tagId = tagId[0] + cursor.execute("select relationId from relation where tagId ='{0}' and issueId = '{1}'".format(tagId, issueId)) + relationId = cursor.fetchone() + if relationId == None: + cursor.execute("insert into relation (tagId, issueId) values ('{0}', '{1}')".format(tagId, issueId)) + db.commit() + +print("Content-type:text/html\n") +redirect = """ +<html> +<head> +<meta http-equiv="refresh" content="0;url=issue?id={0}"> +</head> +</html> +""".format(issueId) +print(redirect) + +cursor.close() +db.close() + + + |