在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例Python语言基础 → BBS论坛源码(基于Python的flask框架开发)

BBS论坛源码(基于Python的flask框架开发)

Python语言基础

下载此实例
  • 开发语言:Python
  • 实例大小:5.65M
  • 下载次数:101
  • 浏览次数:1452
  • 发布时间:2020-02-16
  • 实例类别:Python语言基础
  • 发 布 人:柏树小屹
  • 文件格式:.zip
  • 所需积分:4
 相关标签: bbs python

实例介绍

【实例简介】

前台实现了基本的论坛操作(登录,注册,轮播图,各个板块下的帖子显示,用户信息查看和修改,发帖,点赞,评论等功能),后台是CMS管理系统 主要实现了管理人员的权限分配和限制,个人信息查看和修改,前台板块管理,前台帖子管理,前台轮播图的管理等功能。

【实例截图】

from clipboardfrom clipboard



【核心代码】

from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
from BBS import create_app
from exts import db
from apps.cms import CMSUser,CMSRole,CMSpermission
from apps.front import models as front_models
from apps.models import BannerModel,BoardModel,PostModel
FrontUser = front_models.FrontUser
app = create_app()
manager = Manager(app)
Migrate(app,db)
manager.add_command('db',MigrateCommand)
#命令行下添加管理人员
@manager.option('-u','--username',dest='username')
@manager.option('-p','--password',dest='password')
@manager.option('-e','--email',dest='email')
def create_cms_user(username,password,email):
user = CMSUser(username=username,password=password,email=email)
db.session.add(user)
db.session.commit()
print('cms用户添加成功!')
@manager.command
def create_role():
#1.访问者(修改个人信息)
visitor = CMSRole(name='游客',desc='只能访问数据,不能修改')
visitor.permissions = CMSpermission.VISITOR
#2.运营角色(修改个人信息,管理帖子,管理评论,管理前台用户)
operator = CMSRole(name='运营',desc="管理帖子,管理评论,管理前台用户")
operator.permissions = CMSpermission.POSTER | CMSpermission.VISITOR |\
CMSpermission.COMMENTER | CMSpermission.FRONTUSER | CMSpermission.BANNER
#3.管理员(拥有绝大部分权限)
admin = CMSRole(name='管理员',desc="拥有本系统所有权限")
admin.permissions = CMSpermission.POSTER | CMSpermission.VISITOR |\
CMSpermission.COMMENTER | CMSpermission.FRONTUSER |\
CMSpermission.CMSUSER | CMSpermission.MODERATOR | CMSpermission.BANNER
#4.开发者
developer = CMSRole(name='开发者',desc='开发者专用')
developer.permissions = CMSpermission.ALL_PERMISSION
db.session.add_all([visitor,operator,admin,developer])
db.session.commit()
#给用户添加某个角色
@manager.option('-e','--email',dest='email')
@manager.option('-n','--name',dest='name')
def add_user_to_role(email,name):
user = CMSUser.query.filter_by(email=email).first()
if user:
role = CMSRole.query.filter_by(name=name).first()
if role:
role.users.append(user)
db.session.commit()
print('用户添加到角色成功!')
else:
print('%s邮箱没有这个用户!'%email)
#添加前台用户
@manager.option('-t','-telephone',dest='telephone')
@manager.option('-u','-username',dest='username')
@manager.option('-p','-password',dest='password')
def create_frontUser(telephone,username,password):
user = FrontUser(telephone=telephone,username=username,password=password)
db.session.add(user)
db.session.commit()
print('前台用户添加成功')
#测试一个用户是否拥有访问者权限
@manager.command
def test_permission():
user = CMSUser.query.first()
if user.has_permission(CMSpermission.VISITOR):
print('这个用户有访问者权限')
else:
print('这个用户没有访问者权限')
#创建测试帖子
@manager.command
def create_test_post():
for x in range(1,100):
title = '标题%s' % x
content = '内容%s'% x
board = BoardModel.query.first()
author = FrontUser.query.first()
post = PostModel(title=title,content=content)
post.board = board
post.author = author
db.session.add(post)
db.session.commit()
print('测试帖子添加成功!')
if __name__ == '__main__':
manager.run()

标签: bbs python

实例下载地址

BBS论坛源码(基于Python的flask框架开发)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 jack-likai 发表于: 2020-05-23 16:36 02
报错啊,进行数据python manage.py db init # 创建迁移的仓库 Python manage.py db migrate # 创建迁移的脚本 python manage.py db upgrade # 更新数据库不成功啊

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警