Al *_*Tsm 1 python sqlalchemy heroku flask
我有一个用于学习目的的系统,用于Flask-SQLAlchemy并部署在Heroku上(python/postgresql:
http://monkey-me.herokuapp.com/
https://github.com/coolcatDev/monkey-me
我的应用程序在本地工作正常,我通过14次成功通过测试对其功能和用例进行了单元测试.
当我部署一切似乎完美.它部署了我定义的环境变量APP_SETTINGS >>> config.BaseConfig,我运行db_create.py脚本来初始化db.我创建了一些用户:
username-userpassword:
Alex-passwordAlex
Jack-passwordJack
Sara-passwordSara
Run Code Online (Sandbox Code Playgroud)
但是缺少一件事......我从主导航栏转到用户页面,我收到一个5oo内部服务器错误说:
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
Run Code Online (Sandbox Code Playgroud)
我在app.py上的应用代码具有以下调试模式:
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
但是没有显示进一步的错误.
请注意,如果我在heroku上访问系统并且我已经注销,如果我转到用户,我应该重定向到登录页面,这样我已经调试了多远......
如果我将heroku上的环境变量LAUNCHY_DEBUG设置为true或false,那么一切都会变得疯狂并出现新问题......就像我无法删除用户一样,配置文件图像不会加载....
如果我从heroku中删除LAUNCHY_DEBUG var,则新问题(图像不会加载,无法删除用户..)会在用户页面的原始500错误中保留.
提前感谢您对调试的任何建议
使用以下命令获取更多日志中的反馈:
import logging
app.logger.addHandler(logging.StreamHandler(sys.stdout))
app.logger.setLevel(logging.ERROR)
Run Code Online (Sandbox Code Playgroud)
这揭示了这个问题:
ProgrammingError: (ProgrammingError) column "user_bf.id" must appear in the GROUP BY clause or be used in an aggregate function
Run Code Online (Sandbox Code Playgroud)
修改查询:
userList = (
users.query
.add_column(db.func.count(friendships.user_id).label("total"))
.add_column(user_bf.id.label("best_friend"))
.add_column(user_bf.userName.label("best_friend_name"))
.outerjoin(friendships, users.id == friendships.user_id)
.outerjoin(user_bf, users.best_friend)
.group_by(users.id, user_bf.id)
.order_by(test)
.paginate(page, 6, False)
)
Run Code Online (Sandbox Code Playgroud)
关于图像消失:
在heroku上托管的文件系统上编写的任何文件都将在dynos生命周期结束时删除.
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |