flask开发填坑

0x0 前言

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

0x1Target database is not up to date

flask开发填坑_第1张图片
如果遇到上述问题,请找到migrations中最新版本得迁移文件
flask开发填坑_第2张图片
将其中的revision号手动填到数据库的alembic_version表中,覆盖原有数据
flask开发填坑_第3张图片

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 
    from .auth import CAS, login_required
  File "F:\FTP\xxx\app\auth\__init__.py", line 5, in 
    from . import views
  File "F:\FTP\xxx\app\auth\views.py", line 7, in 
    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

注释没有闭合。

你可能感兴趣的:(flask开发部署)