http://python99.freebsdhost.org/board.py
因为是在网上直接写的,我用的这个免费空间用的是fastcgi模式,一旦我程序写错了都是500错误,写起来非常费劲,程序虽然简陋,也磕磕绊绊花了一天的时间.其中在处理留言者提交的变量,就是post的username和msg变量,我找不到python里可以直接处理的模块.在php里好像直接用$_POST['username']和$_POST['msg']就可以了,python里好像不行,所以我用了正则好歹匹配上了,不过如果是复杂的留言,估计会出错.这里大家如果有更好的方法,欢迎贴出来切磋.
mysql数据库:
CREATE TABLE IF NOT EXISTS `msg` (
`id` bigint(12) NOT NULL AUTO_INCREMENT,
`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`ip_address` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`data` text COLLATE utf8_unicode_ci NOT NULL,
`time` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=12 ;
phpmyadmin导入即可
文件源码:
#!/usr/local/python2/bin/python
# -*- coding: utf-8 -*-
import re
import time
import urllib
import adodb
import MySQLdb
def myapp(environ, start_response):
#////////////////数据库初始化/////////////
conn = adodb.NewADOConnection('mysql')
conn.Connect('localhost','user','psssword','dbname')
#////////////////数据库初始化/////////////
conn.Execute("set names 'utf8'")
username = ""
data = ""
post = str(environ['wsgi.input'].read())
if len(post)>0:
p = re.compile('username=(.*?)&msg=(.*?)&submit')
urls = p.findall(post)
i = 0
for x in urls[0]:
if i==1:
data = urllib.unquote_plus(x)
else:
username = urllib.unquote_plus(x)
i += 1
conn.Execute("INSERT INTO `msg` ( `id`, `username`, `ip_address`, `data`, `time` ) VALUES (%s, %s, %s, %s, %s)", (None, MySQLdb.escape_string(username), MySQLdb.escape_string(environ['REMOTE_ADDR']), MySQLdb.escape_string(data), time.time()))
post_table = ''
res = conn.Execute('select * from msg order by time DESC')
#print cursor.fields[1]
while not res.EOF:
topic = res.GetRowAssoc(0)
post_table += '<br><table width=600 border=1 cellspacing=\'2\' cellpadding=\'2\'><tr><td width=100>用户名</td><td>'+str(topic['username'])+'</td></tr><tr><td>留言时间</td><td>'+str(time.strftime('%Y-%m-%d %X', time.localtime(topic['time'])))+'</td></tr><tr><td>留言内容</td><td>'+str(topic['data'])+'</td></tr><tr></tr></table>'
res.MoveNext()
res.Close()
start_response('200 OK', [('Content-Type', 'text/html')])
return ["<html><HEAD><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"><TITLE>留言板</TITLE></HEAD><body><form action=\"./board.py\" method=\"post\"><table width=600 border=1 cellspacing=\"2\" cellpadding=\"2\"><tr><td>用户名</td><td><input type=\"text\" name=\"username\" size=\"20\"></td></tr><tr><td>留言内容</td><td><textarea name=\"msg\" rows=\"3\" cols=\"60\"></textarea></td></tr><tr><td colspan=2><input name=\"submit\" type=\"submit\" value=\"提交留言\"></td></tr></table></form></body></html>"+post_table] #HTTP返回
if __name__ == '__main__':
from flup.server.fcgi import WSGIServer
WSGIServer(myapp).run()
分享到:
- 2009-06-22 14:37
- 浏览 740
- 评论(1)
- 论坛回复 / 浏览 (1 / 2386)
- 查看更多
相关推荐
黑男奉献版服装ERP生产管理软件整体源代码(大出血赠送广大编程学习者一起切磋武艺!)
中外景区规划师切磋规划理念.doc
不错的ansys学习资料,欢迎一起学习切磋。
我这里 有关于 VHDL设计的文章,希望 从事 VHDL设计的同仁相互切磋 切磋
工欲善其事必先利其器,中外景区规划师切磋规划理念就是你学习这一行业最好的工具,希望中外景区规划师切...该文档为中外景区规划师切磋规划理念,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
提供源码,初涉VC,大家多多交流,其中大部分源码都可在孙鑫VC中找到
QT入门简易PPT。 语言通俗易懂,易上手。 强烈推荐新手使用学习。 本人全免费共享个人资源,供大家相互学习、切磋。
我的Windows Phone应用小程序,供热爱学习wp7的同志们下载研究,共同切磋,欢迎大家给与宝贵意见。
我的Windows Phone应用小程序,供热爱学习wp7的同志们下载研究,共同切磋,欢迎大家给与宝贵意见。
我的Windows Phone应用小程序,供热爱学习wp7的同志们下载研究,共同切磋,欢迎大家给与宝贵意见。
用C语言写的打飞机游戏!希望大家切磋切磋!多多提升自己的学习水平。
也欢迎大家转给更多有相同兴趣、积极上进的同事和朋友们,一起切磋,共同成长。 面对未来,希望大家有「无惧前路雨潇潇」的勇气,也兼具「乘风破浪会有时」的魄力。 知不足而奋进,望远山而力行。祝愿大家在甲辰...
该网站是某无线电管理委员会的网站源码,适合正在学习的大学生朋友切磋学习,本人才疏学浅,如有什么错误,请qq联系120442560 如有验证请输入522362@163.com
简介:在非GUI环境下做的简易电子表格,功能比较简单,实现了表格的保存、编辑、基本统计等操作。 内容:源代码、文档 开发工具:VC6.0 注:这个是我做课程设计的内容,拿出来跟大家分享, 做得不好,还...
本程序是一个VC++编写的计算器,适合于VC++初学者参考,希望大家能够相互切磋!
留言板简单实用,适合初学者研究、使用、学习,希望和大家进行交流,增长技能,切磋技艺
VB编写的NetScanner网站敏感信息扫描器,用来检查你的网站中是否存在可疑或恶意脚本,当然可能没有杀毒软件那么历害,扫描速度视网站文件的多少,代码发布主要是与大家一起切磋学习,学习VB这么长时间,期待与大家...
听评课是我们一线教师互相学习、切磋教艺、研究教学 的重要措施,我们信息技术教材上就有这样的材料,肖伯纳说:"你有一个苹果,我有一 个苹果,彼此交换以后还是一个苹果;如果你有一个思想,我有一个思想,彼此...
第一次尝试使用该软件创作,完全小白,一个上午左右的产物,尝试了多次,最终觉得这一版是最成功的,希望朋友们互相切磋学习,共同进步
c# 开发的贪吃蛇(附源码),欢迎大家互相切磋