`
yahoo21cn
  • 浏览: 740 次
  • 性别: 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生产管理软件整体源代码(大出血赠送广大编程学习者一起切磋武艺!)

    中外景区规划师切磋规划理念.doc

    中外景区规划师切磋规划理念.doc

    ansys基础教程应用

    不错的ansys学习资料,欢迎一起学习切磋。

    VHDL 结构设计 学习学习

    我这里 有关于 VHDL设计的文章,希望 从事 VHDL设计的同仁相互切磋 切磋

    中外景区规划师切磋规划理念

    工欲善其事必先利其器,中外景区规划师切磋规划理念就是你学习这一行业最好的工具,希望中外景区规划师切...该文档为中外景区规划师切磋规划理念,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看

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

    提供源码,初涉VC,大家多多交流,其中大部分源码都可在孙鑫VC中找到

    QT教程(PPT版)

    QT入门简易PPT。 语言通俗易懂,易上手。 强烈推荐新手使用学习。 本人全免费共享个人资源,供大家相互学习、切磋。

    WP7-我的日记本

    我的Windows Phone应用小程序,供热爱学习wp7的同志们下载研究,共同切磋,欢迎大家给与宝贵意见。

    WP7-我的时钟应用

    我的Windows Phone应用小程序,供热爱学习wp7的同志们下载研究,共同切磋,欢迎大家给与宝贵意见。

    WP7-MyCalendar

    我的Windows Phone应用小程序,供热爱学习wp7的同志们下载研究,共同切磋,欢迎大家给与宝贵意见。

    打飞机代码

    用C语言写的打飞机游戏!希望大家切磋切磋!多多提升自己的学习水平。

    2023年美团技术年货

    也欢迎大家转给更多有相同兴趣、积极上进的同事和朋友们,一起切磋,共同成长。 面对未来,希望大家有「无惧前路雨潇潇」的勇气,也兼具「乘风破浪会有时」的魄力。 知不足而奋进,望远山而力行。祝愿大家在甲辰...

    三层架构的漂亮网站(asp.net2.0)

    该网站是某无线电管理委员会的网站源码,适合正在学习的大学生朋友切磋学习,本人才疏学浅,如有什么错误,请qq联系120442560 如有验证请输入522362@163.com

    简易电子表格代码与文档

    简介:在非GUI环境下做的简易电子表格,功能比较简单,实现了表格的保存、编辑、基本统计等操作。 内容:源代码、文档 开发工具:VC6.0 注:这个是我做课程设计的内容,拿出来跟大家分享, 做得不好,还...

    VC++简易计算器代码

    本程序是一个VC++编写的计算器,适合于VC++初学者参考,希望大家能够相互切磋!

    信息技术留言板网站专用

    留言板简单实用,适合初学者研究、使用、学习,希望和大家进行交流,增长技能,切磋技艺

    VB编写的NetScanner网站敏感信息扫描器.rar

    VB编写的NetScanner网站敏感信息扫描器,用来检查你的网站中是否存在可疑或恶意脚本,当然可能没有杀毒软件那么历害,扫描速度视网站文件的多少,代码发布主要是与大家一起切磋学习,学习VB这么长时间,期待与大家...

    作为一名信息技术教研员.doc

    听评课是我们一线教师互相学习、切磋教艺、研究教学 的重要措施,我们信息技术教材上就有这样的材料,肖伯纳说:"你有一个苹果,我有一 个苹果,彼此交换以后还是一个苹果;如果你有一个思想,我有一个思想,彼此...

    suno AI 软件亲测创作的歌曲Summer Forever

    第一次尝试使用该软件创作,完全小白,一个上午左右的产物,尝试了多次,最终觉得这一版是最成功的,希望朋友们互相切磋学习,共同进步

    c# 开发的贪吃蛇(附源码)

    c# 开发的贪吃蛇(附源码),欢迎大家互相切磋

Global site tag (gtag.js) - Google Analytics