当前位置:   article > 正文

更新中:从入门到进阶,Flask开发踩坑大全_unimplemented method 'getpostids

unimplemented method 'getpostids


  长期更新,记录自己走过的弯路


一、flask-SQLAlchemy相关

1.ImportError: No module named MySQLdb : 没有添加连接mysql数据库的驱动

  解决办法:安装flask-mysqldb包
  参考内容:ImportError: No module named MySQLdb [Solved]

2.AttributeError: 'str' object has no attribute 'config' : 字符串对象没有config属性

  问题排查:定义模型类时继承基类出现了问题,错继承了db
  解决办法:将db改成db.Model
  参考内容:flask-SQLAlchemy 2.0 document - 快速入门

3.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实例的问题,浪费了很多时间



二、flask.blueprint(蓝图)相关

1.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

2.AssertionError: Unimplemented method 'GET'

  出现情景:调用蓝图根目录视图方法时出现。我是以类/方法的形式写的视图函数
  解决方法:将基于类/方法的视图函数 改编为路由视图函数 即可
  参考内容:flask-Blueprint document
  扩展笔记:
    a) 访问蓝图中的文件或者视图函数格式:蓝图名称.文件/视图函数
蓝图目录访问格式示例
    b)两种蓝图视图定义:(以admin为蓝图名称)
       - 基于类/方法的视图:
蓝图基于类、方法视图
        使用这种视图还需要在蓝图中进行注册
注册视图
      - 路由视图:
普通路由视图





三、flask-migrate相关

1.AttributeError: 'NoneType' object has no attribute 'engine'

字面上理解就是找不到engine,而结合上下可知engine是sqlalchemy的引擎属性,所以可初步判定是sqlalchemy连接时出了问题
而最终我是因为在初始化flask-migrate时没有传入sqlalchemy对象,如

 migrate.init_app(app,db)
  • 1

`


上次更新:2020年10月25日

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/587174
推荐阅读
相关标签
  

闽ICP备14008679号