Maison  >  Questions et réponses  >  le corps du texte

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

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


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

阿神阿神2764 Il y a quelques jours736

répondre à tous(5)je répondrai

  • 天蓬老师

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

    • Publiez le code des deux attributs que vous avez ajoutés

    • Le 'String' object dans l'erreur n'est pas un type chaîne, c'est la classe Field dans sqlalchemy String

    Mise à jour :
    Selon le code que vous avez posté, la faute d'orthographe de about_me dans last_seen et db.column devrait être db.Column

    répondre
    0
  • PHP中文网

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

    Une chose qui n'est pas mentionnée dans le livre sur la migration de base de données est que chaque migration nécessite de recréer le script de migration, puis d'utiliser le script pour la migration.
    Pour plus de détails, veuillez consulter : https://zhuanlan.zhihu.com/p/...

    répondre
    0
  • 黄舟

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

    Question 1 : Comme vous l'avez dit, ce type de problème se produira toujours si vous supprimez toute la base de données d'origine et la reconstruisez, ce qui signifie qu'il ne s'agit pas d'un problème avec le fichier de migration de version.
    Question 2 : sqlalchemy C'est juste une extension fournie par d'autres développeurs de Flask, donc cela n'a rien à voir avec Flask lui-même.

    Comme mentionné ci-dessus, String n'est pas le type de données de python lui-même, mais est fourni par sqlalchemy, il devrait donc s'agir d'une erreur dans la classe Model que vous avez définie vous-même. Vous feriez mieux de fournir le code de la partie erreur, sinon il sera difficile à analyser.

    répondre
    0
  • PHPz

    PHPz2017-04-18 10:05:58

    Le code spécifique est comme ci-dessus
    Ma commande de requête
    user = models.User.query.get(1)

    imprimer user.email (normal) user.about_me (rapport d'erreur) user.last_seen (rapport d'erreur)

    répondre
    0
  • PHPz

    PHPz2017-04-18 10:05:58

    Si vous souhaitez mettre Column en majuscule, vous ne devriez pas avoir d'erreur

    répondre
    0
  • Annulerrépondre