`
yahoo21cn
  • 浏览: 783 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

极端简单的,秉着切磋学习的精神贴上来,欢迎拍砖

阅读更多
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()

分享到:
评论
1 楼 phyeas 2009-06-24  
用cgi模块下的那个FieldStorage类,参考我的帖子:
http://www.iteye.com/topic/365962

相关推荐

    黑男奉献版服装ERP生产管理软件整体源代码(大出血赠送广大编程学习者一起切磋武艺!)

    黑男奉献版服装ERP生产管理软件整体源代码(大出血赠送广大编程学习者一起切磋武艺!)

    语文新课程改革中转变学习方式的一点思考.pdf

    合作学习则通过切磋交流,共同完成任务,培养团队协作精神;探究学习则鼓励学生质疑、研究和解决问题,以培养独立思考能力。这些学习方式与现代教育理念相吻合,有利于个体发展和综合素质的提升。 然而,学习方式的...

    学校迎新生的欢迎词精选.doc

    在这激动人心的时刻,每所校园里都洋溢着对未来的美好憧憬,而欢迎词则成为了向新生传达学校精神和文化的重要媒介。这些欢迎词不仅仅是简单的致辞,它们承载着学校对新生的期许,为他们开启大学生活的序幕。 首先,...

    创建学习型工会计划措施.doc

    例如,定期举办公开课、工作坊、研讨会等,通过教师之间的交流和切磋,使教师们能够互相学习、共同成长。此外,鼓励教师参与科研活动,通过实际的教育研究来提升自身的科研能力和创新能力。 为了营造持续学习的氛围...

    合作学习主题班会_学习中的互动__主题班会.ppt

    "南南合作"是指优秀学生之间的互相学习,通过切磋经验和方法,共同提高。"南北交流"则是优秀学生帮助后进生,通过辅导和交流,使整个小组的学习成绩得到提升。这样的合作模式有助于建立良好的学习氛围,培养学生的...

    人教版《道德与法治》七年级上册:22享受学习课件(共12张PPT).ppt

    此外,团队合作和交流切磋也是提升学习效果的重要手段,通过互相帮助和讨论,我们可以拓宽视野,增强批判性思维能力。 最后,课程引用了古代智慧来强调学习的重要性。"知之者,不如好之者;好之者,不如乐之者"提醒...

    尖子生的语数英学习秘籍分享.pdf

    学生应该在上课前主动浏览即将学习的教材内容,而这样的预习并不只是简单地阅读一遍而已,而是要带着问题和思考去预习。在这个过程中,学生需要找出教材中吸引自己的部分,同时标记出那些自己不理解的难题。这样的...

    七年级政治上册 4.2 掌握科学学习方法教案 粤教版-粤教版初中七年级上册政治教案.doc

    第二课时则通过“学习方法自助餐”和“学习方法互相切磋”等活动,让学生发现并实践适合自己的学习方法,同时教师可根据学生实际情况介绍相关学习策略;第三课时可阅读“阅读与感悟”,进行自我评估,如果时间有限,...

    实用的跟岗学习总结四篇.doc

    1. **工作方面**:跟岗教师应树立为教育奉献的精神,将学习视为提升自身能力的重要途径。在教学实践中,要遵循学校规章制度,激发学生学习兴趣,提高课堂效率。通过参与教学改革,如高效课堂建设,提升教学质量。...

    初中数学小组合作学习的探究.doc

    【标题】和【描述】提及的是初中数学小组合作学习的研究,主要探讨了合作学习在教育中的重要性,以及小组合作学习的特征、形式和存在的问题。以下是对这些内容的详细阐述: **一、合作学习的意义** 合作学习的概念...

    教育学习-虫虫钢琴琴谱大全 v3.9.2.zip

    《虫虫钢琴琴谱大全》可能会有社区功能,允许用户分享自己的演奏录音、交流学习心得,甚至可以参与到线上比赛中,与全球的琴友切磋技艺。这种互动性不仅增加了学习的乐趣,也促进了学习者的动力和参与度。 除此之外...

    工作室跟岗学习总结.doc

    本篇工作室跟岗学习总结聚焦于吴向东名师工作室的实地体验,深挖跟岗学习过程中的感悟与收获,旨在为同行提供参考,共促教育事业的繁荣发展。 首先,遵守规则、自我约束是教师职业素质的体现,更是专业成长的基石。...

    学习cad制图心得体会.doc

    笔者希望通过连续编写有关CAD制图的系列文章,不仅能够帮助读者提升绘图速度和质量,而且能够在同行间建立一个交流和讨论的平台,通过相互学习和切磋,共同进步。 通过本文档,我们了解到作者在学习CAD制图过程中的...

    行业教育软件-学习软件-Introducing 3D Tai Chi 1.0 英文版 (1).zip

    同时,3D Tai Chi 1.0 可能内置了社区交流功能,允许用户分享心得,与其他学习者相互切磋,增强学习的互动性和社群感。 教育软件的创新,如3D Tai Chi 1.0,无疑推动了行业的发展。它不仅使太极拳的学习更加便捷,...

    中学语文骨干教师的培训学习总结.doc

    【中学语文骨干教师培训学习总结】 本次中学语文骨干教师培训是一个为期两年的系统学习过程,旨在提升参训教师的专业素养和教学能力。培训内容丰富多元,涵盖了教育专家的专题报告、一线教师的讲座、实践课与观摩课...

    VC游戏 躲弹高手(大家相互切磋)

    开发者可能需要自定义一个简单的物理引擎来模拟这些行为。 4. **碰撞检测**:检测玩家角色与弹幕之间的碰撞是游戏的核心逻辑之一。这通常通过坐标系统和几何形状的比较来实现。 5. **状态管理**:游戏有不同的状态...

    安卓应用-教育学习-北京学太极 v1.0.160101.zip

    "安卓应用-教育学习-北京学太极 v1.0.160101.zip" 这个标题揭示了我们要探讨的是一个针对Android操作系统的应用程序,属于教育学习类别。"北京学太极"是应用的具体名称,表明这是一款关于学习太极拳的软件。版本号"v...

    教师培训跟岗学习总结格式.pdf

    【教师培训跟岗学习总结】 在教师培训跟岗学习中,我深感收获丰厚,不仅在教学技巧上有了显著提升,也在教育理念上得到了更新。这次培训以“2013年广东省钟xx老师工作室名教师培养对象跟岗学习培训方案”为主线,...

    初中数学国培学习总结 .docx

    在参与此次初中数学国培学习的过程中,我深感荣幸,不仅有机会接触专家的智慧,还能与同行交流切磋,拓宽视野,提升自我。这次学习让我明白,教师的成长离不开积极的态度和主动的学习。下面我将从四个方面分享我的...

    2014年度网络研修学习总结.doc

    在2014年度的网络研修学习过程中,我深深地体会到网络研修作为一种全新的教师专业发展途径,不仅提升了我的教育教学效果,还增强了我的业务综合能力。以下是对这次学习的几点重要总结: 首先,网络研修让我认识到...

Global site tag (gtag.js) - Google Analytics