我想加入login_user(manager)记录用户的登录状态,但之后return render_template('home.html')?会显示网页打不开,如果不加入认证用户功能,网页是可以打开的,也就是说html是没有问题的。我看了别人示例都是这么写的,怎么自己写就出问题了?
# coding:utf-8
from models import Manager, Base
from forms import LoginForm
from flask import Flask, render_template, flash, redirect, url_for, request
from flask.ext.bootstrap import Bootstrap
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm.exc import NoResultFound
from flask.ext.login import LoginManager, login_user, login_required, logout_user, current_user
app = Flask(__name__)
app.config['SECRET_KEY'] = 'Rockwell'
bootstrap = Bootstrap(app)
# 定义数据模型
engine = create_engine('sqlite:///database.db') # 初始化数据库连接
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.session_protection = 'basic'
login_manager.login_view = 'login'
login_manager.login_message = u"请登录您的账户."
@login_manager.user_loader
def load_user(user_id):
return Manager.get(user_id)
@app.route('/', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
try:
manager = session.query(Manager).filter_by(username=form.username.data).one()
if manager.verify_password(form.password.data):
login_user(manager)
return redirect(request.args.get('next') or url_for('home'))
except NoResultFound, e:
print e
flash (u'无效的用户名或密码。')
return render_template('login.html', form=form)
@app.route('/home')
#@login_required
def home():
return render_template('home.html')
@app.route('/logout')
@login_required
def logout():
logout_user()
return redirect(url_for('login'))
if __name__ == '__main__':
app.run()
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
model可以贴出来看看么?