自定义电子公告版

本项目是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>
"""


基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)内容概要:本文档围绕基于遗传算法的异构分布式系统任务调度算法展开研究,重点介绍了一种结合遗传算法的新颖优化方法,并通过Matlab代码实现验证其在复杂调度问题中的有效性。文中还涵盖了多种智能优化算法在生产调度、经济调度、车间调度、无人机路径规划、微电网优化等领域的应用案例,展示了从理论建模到仿真实现的完整流程。此外,文档系统梳理了智能优化、机器学习、路径规划、电力系统管理等多个科研方向的技术体系与实际应用场景,强调“借力”工具与创新思维在科研中的重要性。; 适合人群:具备一定Matlab编程基础,从事智能优化、自动化、电力系统、控制工程等相关领域研究的研究生及科研人员,尤其适合正在开展调度优化、路径规划或算法改进类课题的研究者; 使用场景及目标:①学习遗传算法及其他智能优化算法(如粒子群、蜣螂优化、NSGA等)在任务调度中的设计与实现;②掌握Matlab/Simulink在科研仿真中的综合应用;③获取多领域(如微电网、无人机、车间调度)的算法复现与创新思路; 阅读建议:建议按目录顺序系统浏览,重点关注算法原理与代码实现的对应关系,结合提供的网盘资源下载完整代码进行调试与复现,同时注重从已有案例中提炼可迁移的科研方法与创新路径。
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文提出了一种基于非支配排序的蜣螂优化算法(NSDBO),用于求解微电网多目标优化调度问题。该方法结合非支配排序机制,提升了传统蜣螂优化算法在处理多目标问题时的收敛性和分布性,有效解决了微电网调度中经济成本、碳排放、能源利用率等多个相互冲突目标的优化难题。研究构建了包含风、光、储能等多种分布式能源的微电网模型,并通过Matlab代码实现算法仿真,验证了NSDBO在寻找帕累托最优解集方面的优越性能,相较于其他多目标优化算法表现出更强的搜索能力和稳定性。; 适合人群:具备一定电力系统或优化算法基础,从事新能源、微电网、智能优化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统的多目标优化调度设计;②作为新型智能优化算法的研究与改进基础,用于解决复杂的多目标工程优化问题;③帮助理解非支配排序机制在进化算法中的集成方法及其在实际系统中的仿真实现。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注非支配排序、拥挤度计算和蜣螂行为模拟的结合方式,并可通过替换目标函数或系统参数进行扩展实验,以掌握算法的适应性与调参技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值