flask开发填坑

0x0 前言

本人在flask开发过程中遇到许多问题,在此进行记录。希望能帮助到flask开发道路上的同学。随手填井盖?
.

0x1Target database is not up to date

1-1
如果遇到上述问题,请找到migrations中最新版本得迁移文件
在这里插入图片描述
将其中的revision号手动填到数据库的alembic_version表中,覆盖原有数据
在这里插入图片描述

0x2 在deploy的时候出错但是只显示两行

在这里插入图片描述
如果出现这种情况,你可能是在代码中使用了try语句,但是你没有将错误信息打印出来。

0x3 property of that name exists on mapper

sqlalchemy.exc.ArgumentError: Error creating backref 'xxx' on relationship 'xxx.xxx': property of that name exists on mapper 'mapped class xxx->xxx'

出现这种情况是说你的backref已经存在于别的映射上了,所以你可以将backref重命名。比如backref–>back_populates

0x4 Error: While importing “app”, an ImportError was raised:

Traceback (most recent call last):
  File "F:\FTP\xxx\venv\lib\site-packages\flask\cli.py", line 236, in locate_app
    __import__(module_name)
  File "F:\FTP\xxx\app\__init__.py", line 9, in <module>
    from .auth import CAS, login_required
  File "F:\FTP\xxx\app\auth\__init__.py", line 5, in <module>
    from . import views
  File "F:\FTP\xxx\app\auth\views.py", line 7, in <module>
    from .. import admin_permission
ImportError: cannot import name 'admin_permission'

原因是出现了循环引用(import),修改引用,打破循环。

0x5 pycharm git push 出错 SSL_ERROR_SYSCALL, errno 10054

Enumerating objects: 855, done. Delta compression using up to 4 threads. Total 676 (delta 88), reused 0 (delta 0) The remote end hung up unexpectedly The remote end hung up unexpectedly RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

  • 解决方法:
    进入pycharm中的命令行(Terminal)输入
git config --global http.postBuffer 524288000  
git config http.sslVerify "false"
git push

0x6 pycharm git push出错:Push rejected: Push was rejected, and update failed with error.

更新拒绝,update失败,这个场景常出现在commit完事要push时,如果这个时候远端发生改变,会要求你先update本地代码再向远端提交,以保证一致性。但是这个时候你本地有commit,所以update将会提示失败:
Untracked Files Prevent Merge
Move or commit them before merge
此时可以通过撤销commit来update,再进行push
撤销命令
git reset --soft HEAD^
https://www.cnblogs.com/lfxiao/p/9378763.html

0x7 form.validate_on_submit() 出错

当遇到这种情况而且怎么差都没问题,csrf_token也写了,DataRequire也写了,,,就是找不出错误。
有可能是form 中存在select,这个select没有choices了,需要手动添加上才能验证通过。

	# 为保证form.validate_on_submit() == True
   form.permission.choices = [(r.id, r.name) for r in Role.query.all()]
   form.organization.choices = [(o.id, o.name) for o in Organization.query.all()]  

0x8 Push rejected: Push to origin/master was rejected

你的项目中有和和历史不符的东西

直接打开你要上传代码的文件夹位置鼠标右键git Bash Here
然后直接下面两行命令解决问题
git pull origin master –allow-unrelated-histories
git push -u origin master -f

0x9 flask_principal第一次登陆管理员账号失败,需要推出重新登陆

原因是第一次登陆时系统没有将匿名账号写入session,在login函数起始位置增加代码:

identity_changed.send(
        current_app._get_current_object(),
        identity=AnonymousIdentity())

0x10 jinja2.exceptions.TemplateSyntaxError:Missing end of comment tag

注释没有闭合。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值