python - 如何修复烧瓶 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()
解决方案
我不知道您是否以错误的方式复制代码,但您需要更改下面的代码行
@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
中查看究竟是什么导致了错误
推荐阅读
- facebook - 使用 Selenium webdriver 无法找到 Facebook 注销链接
- c# - 调用类的扩展方法而不使用静态类,而是使用类iteslf使用反射
- docker - 如何修复名称空间 [non-default-namespace] 中名称为 [spark-wordcount-driver] 的种类 [pod] 的错误“操作 [get] 失败”
- .htaccess - 将子域的所有页面永久重定向到主域 .htaccess
- python - C++ 代码 If 条件在 Fortran 或 Python 中的含义
- kubernetes - Kubernetes pods/nodes 被禁止
- javascript - 从字符串中添加一个项目以插入到数据库表中
- qt - 如何减少小部件屏幕截图和将屏幕截图保存为字节数组之间的时间?
- android - Android资源编译失败错误:资源'attr/visibility'与配置''的重复值
- jenkins - 尽管提供了 Sonarqube->SVN Authentication required 错误