自定义电子公告版

本项目是cgi编程,有addmessage.py文件用于建立数据库和添加数据

main.cgi文件用于显示所有主题

view.cgi文件用于显示单个主题的详细信息

edit.cgi用于编辑主题和回复别人的主题

save.cgi用于保存

addmessage.py

#! /usr/bin/python
#addmessage.py
import sqlite3
conn = sqlite3.connect('messages.db')
conn.text_factory = str
curs = conn.cursor()
reply_to  = raw_input('Reply to:')
subject = raw_input('Subject:')
sender = raw_input('Sender:')
text = raw_input('Text:')
curs.execute("select count(*) from sqlite_master where type = 'table' and name = 'messages'")
res = curs.fetchone()
if res[0]==0 :
curs.execute("""
create table messages(
id integer primary key autoincrement,
subject text not null,
sender text not null,
reply_to int,
text text not null
);
""")
if reply_to:
query = """
insert into messages(reply_to,sender,subject,text)
values(%s,'%s','%s','%s')"""%(reply_to.decode('utf-8'),sender.decode('utf-8'),subject.decode('utf-8'),text.decode('utf-8'))
else:
query = """
insert into messages(sender,subject,text)
values('%s','%s','%s')"""%(sender.decode('utf-8'),subject.decode('utf-8'),text.decode('utf-8'))
curs.execute(query)
curs.execute('select * from messages')
res = curs.fetchall()
print 'row:',curs.rowcount
for line in res:
for f in line:
print f,
print '\n'
conn.commit()

main.cgi文件

#!/usr/bin/python
import cgi
import cgitb;cgitb.enable()
import sqlite3
conn = sqlite3.connect('messages.db')
conn.text_factory  = str
curs = conn.cursor()
curs.execute('select * from messages')
names = [d[0] for d in curs.description]
rows = [dict(zip(names,row)) for row in curs.fetchall()]
print """Content-type:text/html;charset = "utf-8"\n
<html>
<head>
<title>The FooBar Bulletin Board</title>
</head>
<body>
<h1>The FooBar Bulletin Board</h1>
"""
toplevel = []
children = {}
for line in rows:
if line['reply_to'] is None:
toplevel.append(line)
else:
children.setdefault(line['reply_to'],[]).append(line)
def format(row):
subjectView = "%(subject)s"%row
print '<p><a href="view.cgi?id=%(id)i">%(subject)s</a></p>'%row
try: kids = children[row['id']]
except KeyError:pass
else:
print "<blockquto>"
for kid in kids:
format(kid)
print "<blockquto>"
print '<p>'
for row in toplevel:
format(row)
print """</p>
<hr/>
<p><a href = "editBoard.cgi">Post message</a></p>
</body>
</html>
"""

view.cgi文件

#!/usr/bin/python
print "Content-type:text/html;charset = 'utf-8'\n"
import cgi
import sys
import cgitb;cgitb.enable()
import sqlite3
conn = sqlite3.connect('messages.db')
conn.text_factory = str
curs = conn.cursor()
form = cgi.FieldStorage()
idd  = form.getvalue('id')
try: idd = int(idd)
except: 
print 'Invalid Id'
sys.exit()
print """
<html>
<head>
<title>View Board</title>
</head>
<h1>View Board</h1>
<body>
"""
curs.execute('select * from messages where id = %i'%idd)
names = [d[0] for d in curs.description]
rows = [dict(zip(names,row)) for row in curs.fetchall()]
if not rows:
print "Unknown messages ID"
sys.exit()
row = rows[0]
print """
<b>Subject:</b>%(subject)s<br/>
<b>Sender:</b>%(sender)s<br/>
<pre>%(text)s</pre>
<hr/>
<a href = "simple_main.cgi">Back to the main Board</a>
<a href = "editBoard.cgi?reply_to=%(id)i">Reply</a>
</p>
</body>
</html>
"""%row

edit.cgi文件

#!/usr/bin/python
print "Content-type:text/html;charset = 'utf-8'\n"
import cgi
import cgitb;cgitb.enable()
import sys
import sqlite3
conn = sqlite3.connect('messages.db')
conn.text_factory = str
curs = conn.cursor()
form = cgi.FieldStorage()
reply_to = form.getvalue('reply_to')
print """
<html>
<head>
<title>Compose Board</title>
</head>
<body>
<h1>Compose Board</h1>
<form action = 'saveBoard.cgi' methon = 'POST'>
"""
subject = ''
if reply_to is not None:
print '<input type = hidden name = "reply_to" value = "%s" >'%reply_to
curs.execute('select subject from messages where id = "%s"'%reply_to)
subject = curs.fetchone()[0]
if  not subject.startswith('Re: '):
subject = "Re: "+subject
print """
<b>Subject:</b><br/>
<input type = 'text' size = '40' name = 'subject' value = "%s"><br/>
<b>Sender:</b><br/>
<input type = 'text' size = '40' name = 'sender'><br/>
<b>Messages:</b><br/>
<textarea rows = '20'  cols = '40' name = 'text'></textarea><br/>
<input type = 'submit' name  = 'Save'>
</form>
<hr/>
<a href="simple_main.cgi">Back to main Board</a>
</body>
<html>"""%subject

save.cgi文件

#!/usr/bin/python
print 'Content-type:text/html;charset = "utf-8"\n'
import cgi
import cgitb;cgitb.enable()
import sys
import sqlite3
conn = sqlite3.connect('messages.db')
conn.text_factory = str
curs = conn.cursor()
form = cgi.FieldStorage()
reply_to = form.getvalue('reply_to')
sender = form.getvalue('sender')
subject = form.getvalue('subject')
text = form.getvalue('text')
if not(sender and subject and text):
print 'Please supply sender,subject and text'
sys.exit()
print """
<html>
<head>
<title>Save Board</title>
</head>
<body>
<h1>Save Board</h1>
"""
if reply_to :
curs.execute("insert into messages(reply_to,subject,sender,text) values(%i,'%s','%s','%s')"%(int(reply_to),subject,sender,text))
else:
curs.execute("insert into messages(subject,sender,text) values('%s','%s','%s')"%(subject,sender,text))
conn.commit()
print 'Save success!'
print """
<hr/>
<a href="simple_main.cgi">Back to main Board</a>
</body>
</html>
"""


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值