Django项目-bbs论坛(1)

项目:开发一个简单的BBS论坛

需求:

  1. 整体参考“抽屉新热榜” + “虎嗅网”
  2. 实现不同论坛版块
  3. 帖子列表展示
  4. 帖子评论数、点赞数展示
  5. 在线用户展示
  6. 允许登录用户发贴、评论、点赞
  7. 允许上传文件
  8. 帖子可被置顶
  9. 可进行多级评论

知识必备:

  1. Django
  2. HTML\CSS\JS
  3. BootStrap
  4. Jquery


数据库models:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.


class UserProfile(models.Model):
    """用户"""
    user = models.OneToOneField(User,null=True,default=None)
    name = models.CharField(max_length=32)

    def __str__(self):
        return self.name

class Article(models.Model):
    """文章"""
    title = models.CharField(max_length=128,unique=True)
    author = models.ForeignKey("UserProfile")
    category = models.ForeignKey("Category")
    pub_date = models.DateTimeField(auto_now_add=True,auto_created=True)
    tags = models.ManyToManyField("Tag",null=True)
    body = models.TextField(max_length=100000)
    head_img = models.ImageField(upload_to="uploads")
    status_choices = ((0,"草稿"),(1,"发布"),(2,"隐藏"))
    priority = models.SmallIntegerField(default=1000,verbose_name="优先级")

    def __str__(self):
        return self.title


class Category(models.Model):
    """板块"""
    name = models.CharField(max_length=64,unique=True)
    set_as_to_menu = models.BooleanField(default=True)

    def __str__(self):
        return self.name

class Tag(models.Model):
    """标签"""
    name = models.CharField(max_length=64,unique=True)

    def __str__(self):
        return self.name

class Comment(models.Model):
    """评论"""
    article = models.ForeignKey("Article")
    p_node = models.ForeignKey("Comment",null=True,blank=True,related_name="my_child_comment")

    user = models.ForeignKey("UserProfile")
    date = models.DateTimeField(auto_now_add=True)
    comment = models.TextField(max_length=1024)

    def __str__(self):
        return self.comment

class Like(models.Model):
    """点赞"""
    article = models.ForeignKey("Article")
    user = models.ForeignKey("UserProfile")
    date = models.DateTimeField(auto_now_add=True)

class PrivateMail(models.Model):
    """私信"""
    pass

使用django自带的admin管理数据库->admin:
首先创建superuser用户用于登录admin自带的web:
python manage.py createsuperuser
其次admin模块代码:
注意:需要使用admin管理的表都需要注册一下
from django.contrib import admin

# Register your models here.

from bbs import models


admin.site.register(models.UserProfile)
admin.site.register(models.Article)
admin.site.register(models.Comment)
admin.site.register(models.Category)
admin.site.register(models.Tag)
admin.site.register(models.Like)
admin.site.register(models.PrivateMail)
 
 
添加用户并激活授权则用户能登录并有相应的权限。
界面:




微信扫码订阅
UP更新不错过~
关注
  • 1
    点赞
  • 4
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闫_先_生_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值