【Python/Web开发】Flask踩坑大全



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


一、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 - 快速入门



二、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为蓝图名称)
       - 基于类/方法的视图:
【Python/Web开发】Flask踩坑大全_第1张图片
        使用这种视图还需要在蓝图中进行注册
注册视图
      - 路由视图:
【Python/Web开发】Flask踩坑大全_第2张图片







文章中有错误的地方欢迎指出,大家共同进步~                                                 字   数:874                                                 上次更新:2020年04月24日

你可能感兴趣的:(Python,学习总结,大二下学期)