实例介绍
【实例简介】
前台实现了基本的论坛操作(登录,注册,轮播图,各个板块下的帖子显示,用户信息查看和修改,发帖,点赞,评论等功能),后台是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() |
网友评论
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
支持(0) 盖楼(回复)