python开发一个web留言板

Python017

python开发一个web留言板,第1张

实现http服务监听,所用的库urllib,httplib,对于header或者cookie有要求可以使用httplib2。

在接到响应后传给客户端信息或者给出trace信息

这是最简单的实现,对于线程,安全,密码验证都一概没有

Django时下真是名声在外了,连我这个几乎不怎么开发Web,没有使用过任何WWW Framework的小人物都对这种中间件相当的向往。limodou的学习记录是我比较喜欢去的一个地方。可惜limodou写那个记录的Django版本比较老,我常常发现不能找到自己需要import的包在哪里。所以如果想跟随当前,还是去人家Django官方的文档看看。

说起来,Django就是对Web开发中最常见而且比较烦琐的一些环节进行了包装。比如:数据的对象操作,HTTP协议的处理,网页的模板化处理等。而Django对一些常见的操作也进行了包装,比如增加、修改、列出一组数据集合。并且提供了强大的网站管理工具。按照文档上面的入门例子,用户需要编写的代码实在是非常的少。

一个Django工程的建立和运行都需要执行它的一个管理脚本:

开启一个工程,并建立相关的目录和必须的文件:

django-admin.py startproject myproject

初始化数据库

django-admin.py init

等等,可以参看没有任何参数时候脚本报告的帮助清单。

开启一个工程之后就要开始建立数据库的结构了。可能在你还没有对你的这个程序有一个完全的认识之前就要建立数据库的确是非常让人难受的事情。还好我们还有可以重新建立数据结构的机会。数据对象在这里叫做meta。放在你工程的/apps/<程序>/models/目录下面。

比如下面的一段代码:

# -*- coding: utf-8 -*-

from django.core import meta

class Admin(meta.Model):

"管理员账号"

name = meta.CharField(maxlength = 64)

password = meta.CharField(maxlength = 16)

def __repr__(self):

return self.name

class META:

admin = meta.Admin(

fields = (

('用户名', {'fields': ('name',)}),

('身份确认', {'fields': ('password',)}),

),

)

上面建立了一个数据对象描述了一个管理员所需要保存的资料。__repr__函数用于在显示这个对象的时候有一种比较直接明了的显示。而内部类META,则用于Django内部的管理界面。

写好了所有的数据描述。执行

django-admin.py install guestbook

在你配置的数据库中就可以发现你描述的数据已经变成了具体的表,存在了数据库中了。

-------

下面给出留言簿具体的数据部分:guestbook.py

# -*- coding: utf-8 -*-

from django.core import meta

class Admin(meta.Model):

"管理员账号"

name = meta.CharField(maxlength = 64)

password = meta.CharField(maxlength = 16)

def __repr__(self):

return self.name

class META:

admin = meta.Admin(

fields = (

('用户名', {'fields': ('name',)}),

('身份确认', {'fields': ('password',)}),

),

)

class Message(meta.Model):

"一个留言记录的数据库记录"

subject = meta.CharField(maxlength = 256)

name = meta.CharField(maxlength = 64)

email = meta.EmailField(blank = True)

pub_date = meta.DateTimeField('date published')

content = meta.TextField(maxlength = 4096)

from_addr= meta.IPAddressField()

reply = meta.TextField(maxlength = 4096, blank = True)

def is_replied(self):

return not (len(self.reply) == 0)

is_replied.short_description = '已经回复?'

subject.short_description = '主题'

def __repr__(self):

return self.name + " said: " + self.subject

class META:

admin = meta.Admin(

fields = (

(None, {'fields': ('subject', 'name', 'pub_date')}),

('内容', {'fields': ('content', 'email', 'from_addr'), 'classes': 'collapse'}),

('回复', {'fields':('reply',), 'classes': 'collapse'}),

),

list_display = ('subject', 'pub_date', 'is_replied'),

list_filter = ['pub_date'],

search_fields = ['subject', 'content'],

)

打开软件,输入你要刷的QQ号,然后输入要留言的内容,嘿嘿,等着吧,马上开始!

软件下载:

+精简版(需Python平台支持)(10k)

+独立版(无需安装python平台)(712k)

使用说明:

1.正常使用本软件请安装python平台,如不想下载python平台可以下载独立版

2.6666234收集自网络的sid贴 软件内置了40余个sid,软件将使用这些sid到你的空间留言.如需增加更多的sid请在软件所在目录中的sids.txt文件中添加,每个sid占一行,最后以UTF-8编码保存.希望大家能把自己整理的sid拿出来大家分享哦.

3.软件使用非常简单,只需输入你要刷的QQ号就可以了,留言内容可以自己写,也可以用默认的.在留言中没有加入任何作者的广告,也不会带有签名,因为防止使用的sid的签名中带有广告.

4.在刷回复的过程中不要按右软键(退出),因为这样的话会直接退出软件,如果你想终止刷,则按下这个键退出.

5.删除软件可以在程序管理中删除,也可以到!:\S ystem\apps\文件夹中删除xQzone这个文件夹.

6.在使用过程中有任何问题请到7716831的QQ空间留言,我会尽快回复的:)

7.支持作者请在软件首次启动时提示是否安装UCWEB的时候点"是",然后选择适合机型下载并安装.还是那句话:您的支持是我努力的动力!