基本信息
源码名称:BBS论坛源码(基于Python的flask框架开发)
源码大小:5.65M
文件格式:.zip
开发语言:Python
更新时间:2020-02-16
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 4 元×
微信扫码支付:4 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
前台实现了基本的论坛操作(登录,注册,轮播图,各个板块下的帖子显示,用户信息查看和修改,发帖,点赞,评论等功能),后台是CMS管理系统 主要实现了管理人员的权限分配和限制,个人信息查看和修改,前台板块管理,前台帖子管理,前台轮播图的管理等功能。
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() |