>  Q&A  >  본문

python - flask 数据库查询总是报错,非常奇怪的现象。

1.我是参照网上的一个flask例子,http://www.pythondoc.com/flas...很苦逼,进行操作的。
2.当我在数据库原有的一张表里 添加额外的两个属性,执行migrate操作
3.之后 我去查询数据库时,涉及这两个变量总是报同样的错误,具体如下:


lower()函数 字符串应该都有这个属性的呢
我将原来的数据库进行删除,重建数据库 还是报同样的错误。有遇到过相同问题的同学,可以给点提示,谢谢!
问题一:我删除的时候,是否还有一些版本迁移的文件未删干净
问题二:是否是flask带有的缺陷,如何解决

阿神阿神2764일 전740

모든 응답(5)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 10:05:58

    • 추가한 두 속성의 코드를 게시하세요

    • 오류의 'String' object은 문자열 유형이 아니며 sqlalchemy의 Field 클래스입니다 String

    업데이트:
    게시하신 코드에 따르면 about_melast_seen에서 db.column의 철자가 틀린 것은 db.Column

    이어야 합니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 10:05:58

    데이터베이스 마이그레이션 책에는 언급되지 않은 것이 하나 있습니다. 모든 마이그레이션에는 마이그레이션 스크립트를 다시 만든 다음 마이그레이션용 스크립트를 사용해야 합니다.
    자세한 내용은 https://zhuanlan.zhihu.com/p/...

    를 참조하세요.

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 10:05:58

    질문 1: 말씀하신 대로 원본 데이터베이스 전체를 삭제하고 재구축을 해도 이런 문제가 계속 발생하는데, 이는 버전 마이그레이션 파일의 문제는 아니라는 뜻입니다.
    질문 2: sqlalchemy 다른 플라스크 개발자가 제공한 확장일 뿐이므로 플라스크 자체와는 아무런 관련이 없습니다.

    위에서 언급한 것처럼 Stringpython 자체의 데이터 타입이 아니고 sqlalchemy에서 제공하는 것이므로 직접 정의한 Model 클래스에 오류가 있어야 합니다. 오류 부분에 대한 코드를 제공하는 것이 좋습니다. 그렇지 않으면 분석하기 어려울 것입니다.

    회신하다
    0
  • PHPz

    PHPz2017-04-18 10:05:58

    구체적인 코드는 위와 같습니다
    내 쿼리 명령
    user = models.User.query.get(1)

    user.email 인쇄(일반) user.about_me(오류 보고서) user.last_seen(오류 보고서)

    회신하다
    0
  • PHPz

    PHPz2017-04-18 10:05:58

    Column을 대문자로 입력하면 오류가 발생하지 않아야 합니다

    회신하다
    0
  • 취소회신하다