from app import db from werkzeug.security import generate_password_hash,check_password_hash from flask_login import UserMixin from . import login_manger
def create_app(): app = Flask(__name__) app.config.from_object(Config) Config.init_app(app) db.init_app(app) login_manger.init_app(app) from .main import main as main_blueprint app.register_blueprint(main_blueprint) from .auth import auth as auth_blueprint app.register_blueprint(auth_blueprint,url_prefix='/auth') return app
from datetime import datetime from flask import render_template,session,redirect,url_for from . import main from .forms import NameForm from .. import db from .. import models from flask_login import login_required
from flask import render_template,redirect,request,url_for,flash from flask_login import login_user,login_required,logout_user from . import auth from ..models import User,db from .forms import LoginForm,RegistrationForm
@auth.route('/login',methods=['GET','POST']) def login(): form = LoginForm() user = User.query.filter_by(email=form.email.data).first() if user is not None and user.verify_password(form.password.data): login_user(user,form.remember_me.data) return redirect(url_for('main.index')) return render_template('auth/login.html',form=form)
from app import db from werkzeug.security import generate_password_hash,check_password_hash from flask_login import UserMixin,AnonymousUserMixin from . import login_manger
class Permission: FLLOW = 0x01 COMMENT = 0x02 WRITE_ARTICLES = 0x04 MODERATE_COMMENTS = 0x08 ADMINISTER = 0x80
class Role(db.Model): __tablename__ = 'roles' id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(64),unique=True) default = db.Column(db.Boolean,default=False,index=True) permissions = db.Column(db.Integer) users = db.relationship('User',backref='role')
#创建数据库角色 @staticmethod def insert_roles(): roles = { 'User':(Permission.FLLOW|Permission.COMMENT|Permission.WRITE_ARTICLES,True), 'Admin':(0xff,False) } for r in roles: role = Role.query.filter_by(name = r).first() if role is None: role = Role(name=r) role.permissions = roles[r][0] role.default=roles[r][1] db.session.add(role) db.session.commit()
from datetime import datetime from flask import render_template,session,redirect,url_for from . import main from .forms import NameForm from .. import db from .. import models from flask_login import login_required from ..decorators import admin_required,permission_required from ..models import Permission