用python +django写一个简单的留言板(可留言,可回复) 哪位大侠有完整的代码(包括页面的数据库)

包括页面和数据库代码!哪位大侠帮帮忙啊!
2024-12-28 01:13:33
推荐回答(2个)
回答1:

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'],
)

回答2:

python很流行啊,我刚听说这个东西很好