Coder Social home page Coder Social logo

abbey2023 / bbs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from haohaoxuexi5776/bbs

0.0 1.0 1.0 1.98 MB

BBS built with Flask and Sqlite in python. 使用python+Flask+Sqlite搭建的BBS网上论坛。

Python 65.18% CSS 2.25% HTML 32.21% Mako 0.36%

bbs's Introduction

使用python中的Falsk框架搭建的网络论坛系统。本项目是基于这里的代码,该代码是书籍《Flask+Web开发:基于Python的Web应用开发实战》的配套代码。书籍循循善诱,通俗易懂,五星推荐。

代码及运行说明

BBS目录为项目根目录,有关代码结构和代码运行流程,参见BBS/Summary.txt文件。

实现的方法

使用了python中的Flask框架进行前后端的开发,本质是Browser/Server架构。前端使用了BootStrap和Jinjia引擎,在后端,我们使用了Python中最为流行的ORM(对象关系模型)模块——SQLALchemy,搭载敏捷版数据库SQLite,作为我们的数据库的实现。使用python中的faker库生成虚拟数据用于测试,包括100个用户,15个版块,500个帖子,3000个回帖。

程序的功能

角色及权限

分为两种角色:管理员和普通用户,普通用户分为版务和一般用户。

  • 管理员:拥有对数据库的所有增删查改操作权限
  • 版务:可以修改版块信息,可以对用户在该板块发帖和回帖内容进行删除操作。
  • 一般用户:每位用户都有自己的基本信息,包括账号、用户昵称、生日、密码、性别、年龄、电子邮件、用户等级、注册日期等。用户可以发帖,可以查看帖子与回复。在论坛中,每个用户拥有自己的个人页面,个人页面是用户近期信息的汇总。

对于未登录用户,除了需要登录才能进行的操作如发帖、回复、点赞,其余的功能与一般用户一样。

注册及登录

用户可通过邮箱注册,邮箱需要进行验证,注册后会自动发送验证链接。之后通过邮箱和密码进行登录。

忘记密码、修改密码、修改邮箱

支持用户忘记密码后重置密码、修改密码以及修改邮箱。

首页界面

普通用户登录后的首页界面如下图所示: avatar 在导航栏中,点击BBS首页可以回到首页,点击版块可以跳转到版块目录界面,点击比较可以查询在版块A发帖比在版块B发帖多的用户,点击搜索用户可以根据用户名查找用户,点击个人可以进入到个人主页,点击右边的头像可以进入修改密码、修改邮箱的界面,以及退出登录。 在导航栏下方,有四个标签页,从左往后分别是站内的所有帖子、点击前十的热门帖子、回帖前10的热门帖子、以及关注者和自己所发的帖子。提供翻页功能,每页至多显示20个帖子。帖子中的黑字为对应的标题,点击它可进入帖子主页。每个帖子右下方有三个按钮:点击所属板块可跳转到帖子所属版块的主页,后两个按钮显示了回帖数和阅读数,点击可跳转到帖子主页。

板块

版块用于对帖子进行分类,包含版块编号、版块名称、版务、版块帖子等基本信息。点击导航栏的版块按钮可以跳转到版块目录界面,其中显示了所有的版块,如下图所示: avatar

点击版块图像或版块名可进入到相应的版块主页。在版块主页,会显示版务名称、帖子数、所有的帖子、热点帖子(最后回复时间减去发帖时间最大的帖子)、阅读数超过平均的帖子、回帖数超过平均的用户、按回帖数降序排列的所有用户、按发帖数降序排列的所有用户。比如,对于经济版块,其首页为: avatar

发表帖子、发表评论、点赞评论

用户可以在版块主页下方的发帖处进行发帖,帖子包含标题和内容,之后该帖子就会被所属版块收录。用户可以对帖子或其他评论进行评论,还可以对评论进行点赞/取消点赞,如进入到经济版块主题为*不过自己更新之后国内提高.*的帖子,会显示: avatar

其中第一条评论为帖子的内容。

收藏版块、帖子

版块界面提供收藏/取消收藏版块的按钮,帖子界面同样提供收藏/取消收藏版块的按钮。

用户界面

点击导航栏的个人可跳转到自己的个人界面,比如用户wt点击个人后的页面为: avatar

其中会显示自己的个人信息、还有编辑资料按钮供用户编辑自己的资料。在页面下方,有五个标签页,分别是:用户发过的帖子、发表的评论、收藏的帖子、收藏的版块和点赞的回帖。每个标签页会显示对应的内容。

关注用户

用户点击其他用户的头像可以跳转到其页面,页面提供关注按钮。比如用户wt进入用户zhushihao的界面,会显示: avatar

如果用户wt已经关注了该用户,则会提供取消关注按钮。点击上图中的关注者可以获得该用户的关注者,同理,点击关注了可以查看该用户关注了谁。

版务

如果用户a是版块B的版务,则在B的主页会提供编辑版块资料按钮,可以修改版块名称和介绍。版务还可以对该板块下的帖子和回复进行删除/恢复操作。

管理员

管理员可以删除用户、删除帖子和回帖、编辑版块资料、编辑用户资料等。比如管理员qinwentao进入感觉版块,界面如下: avatar

可以看到,有编辑版块资料按钮,每个帖子右下方多了**编辑[Admin]删除[Admin]按钮。 管理员进入用户主页,会有编辑资料[Admin]**按钮,在里面可以编辑用户的资料,以及删除/恢复用户账号。比如管理员进入某用户的编辑资料界面后:

avatar

防水贴机制

当用户在10分钟内连续发过10次以上的帖时,系统会向管理员的邮箱发送警告信息。

数据库设计

ER图如图所示: avatar

bbs's People

Watchers

 avatar

Forkers

leitianya

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.