首页 > 解决方案 > 如何修复烧瓶 webapp 中的“内部服务器错误”

问题描述

我是烧瓶的新手,正在尝试部署我的 webapp。我在“/login”页面上收到 500 内部服务器错误。我不知道我的代码有什么问题。该应用程序在本地主机上运行良好。但是当我将它部署在 pythonanywhere 上时,它会抛出错误。

(我将 sqlalchemy 与 sqlite 一起使用,这里是 '/login' 和 '/' 路由代码片段)

@app.route('/')
def home():
    if not session.get('logged_in'):
        return render_template('homepage.html')

    else:
        return render_template('quiz.html')

@app.route('/login', methods=['POST'])
def do_admin_login():
    Session = sessionmaker(bind = engine)
    s = Session()
    global USERN
    global PASSWD
    POST_USERNAME = str(request.form['username']).lower()
    USERN = POST_USERNAME   
    POST_PASSWORD = str(request.form['password'])
    PASSWD = POST_PASSWORD
    query = s.query(User).filter(User.username.in_([POST_USERNAME]),User.password.in_([POST_PASSWORD]))
    result = query.first()
    if result:
        session['logged_in'] = True
    else:
        return 'wrong credentials'

    return home()

标签: pythonflasksqlalchemy

解决方案


我不知道您是否以错误的方式复制代码,但您需要更改下面的代码行

@app.route('/')
def home():
if not session.get('logged_in'):
    return render_template('homepage.html')

else:
    return render_template('quiz.html')

对此

@app.route('/')
def home():
    if not session.get('logged_in'):
        return render_template('homepage.html')
    else:
        return render_template('quiz.html')

因为这也可能导致错误,您也可以在 pythonanywhere 上的应用程序配置debug=True中查看究竟是什么导致了错误


推荐阅读