前几天用了一款树洞app,当天就遇到了ky回复,随后秒删。
最近虽然学了python,但却不知道用来做什么比较好。那么就打算用python+django练练手,来写个树洞吧。
具体计划如下:
Step1:初步达成基本功能
Step2:添加一些配置或分析的功能
Step3:前后分离
Step4:数据缓存
首先要来设计一下数据表。
除了系统自带的User表外,还需要至少三张表,目前的设计如下:
(1)投稿
class mPost(models.Model):
title = models.CharField(max_length=30,null=False)
content = models.TextField(null=False)
can_reply = models.BooleanField(default=True)
reply_count = models.IntegerField(default=0)
user = models.ForeignKey(User,null=False)
nick = models.CharField(max_length=10,default='匿名')
available = models.BooleanField(default=True)
timestamp = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.title
class Meta:
verbose_name = '投稿(mPost)'
verbose_name_plural = '投稿(mPost)'
其中,
title是投稿标题,虽然现在设置为必填,但又觉得没有必要。
can_reply表示是否接受回复。如果怕遇到ky,可以勾选不接受回复。
reply_count用来缓存回复数量
nick是用户对外公布的昵称,如果不填就默认显示为匿名
(2)回复
class mReply(models.Model):
post = models.ForeignKey(mPost, null=False)
content = models.TextField(null=False)
user = models.ForeignKey(User,null=False)
nick = models.CharField(max_length=10,default='匿名')
timestamp = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.nick
class Meta:
verbose_name = '回复(mReply)'
verbose_name_plural = '回复(mReply)'
(3)通知
class msg(models.Model):
post = models.ForeignKey(mPost, null=False)
user = models.ForeignKey(User,null=False)
desc = models.CharField(max_length=30,default='')
timestamp = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.desc
class Meta:
verbose_name = '通知(msg)'
verbose_name_plural = '通知(msg)'
途中遇到的一些问题:
主要还是编码问题,一定要记得在文件开头添加# -*- coding: UTF-8 -*-
才行啊!
网友评论