赞
踩
ImportError: No module named MySQLdb
: 没有添加连接mysql数据库的驱动 解决办法:安装flask-mysqldb包
参考内容:ImportError: No module named MySQLdb [Solved]
AttributeError: 'str' object has no attribute 'config'
: 字符串对象没有config属性 问题排查:定义模型类时继承基类出现了问题,错继承了db
解决办法:将db改成db.Model
参考内容:flask-SQLAlchemy 2.0 document - 快速入门
sqlalchemy.exc.ArgumentError: Mapper mapped class Tbl_hotel_test->tbl_hotel_test could not assemble any primary key columns for mapped table 'tbl_hotel_test'
字面上看是和主键有关系,我排查了一下午,刚才尝试给一个orm模型类字段加上primary_key属性才解决(原来没有一个primary_key属性)…大无语。
我一开始拍错方向就错了,我以为是sqlalchemy实例的问题,浪费了很多时间
werkzeug.routing.BuildError: Could not build url for endpoint 'admin_emp_del' with values ['id']. Did you mean 'admin_emp_list' instead?
问题排除:经过尝试,发现是emp_del 路由出现了问题,并且访问蓝图下endpoint的格式为 ‘蓝图+endpoint的名字’
解决办法:将基于类/方法的视图注释,替换成路由视图,然后使用url_for获取视图函数的绝对路径
参考内容:Python werkzeug.routing.BuildError: Could not build url for endpoint
AssertionError: Unimplemented method 'GET'
出现情景:调用蓝图根目录视图方法时出现。我是以类/方法的形式写的视图函数
解决方法:将基于类/方法的视图函数 改编为路由视图函数 即可
参考内容:flask-Blueprint document
扩展笔记:
a) 访问蓝图中的文件或者视图函数格式:蓝图名称.文件/视图函数
b)两种蓝图视图定义:(以admin为蓝图名称)
- 基于类/方法的视图:
使用这种视图还需要在蓝图中进行注册
- 路由视图:
AttributeError: 'NoneType' object has no attribute 'engine'
字面上理解就是找不到engine,而结合上下可知engine是sqlalchemy的引擎属性,所以可初步判定是sqlalchemy连接时出了问题
而最终我是因为在初始化flask-migrate时没有传入sqlalchemy对象,如
migrate.init_app(app,db)
`
上次更新:2020年10月25日
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。