zoukankan      html  css  js  c++  java
  • flask从数据库反向导入Model以及出现报错No module named sqlacodegen.main

     使用flask的朋友肯定了解了flask_sqlalchemy,不了解的小伙伴也可以查看博文:Flask 操作Mysql数据库 - flask-sqlalchemy扩展

     上面博文中讲解了如何将flask中的model转化成数据表,这里我们演示一下“如何通过已有数据库反向导出Model模型”,以及解决遇到的一些问题。

    一、flask从数据库反向导入Model

    这里我们讲解一个插件:flask-sqlacodegen,他的作用就是将数据库转换成模型。
    首先我们下载flask-sqlacodegen:

    pip install flask-sqlacodegen

    下载成功后我们就可以在控制台使用flask-sqlacodegen命令了,完成转换的命令:

    flask-sqlacodegen "mysql+pymysql://root:password@127.0.0.1/database" --flask --tables tableName

    然后回车就可以在控制台返回对应表的Model了。

    二、出现的错误

    1、ModuleNotFoundError: No module named 'sqlacodegen.main'

     首先去检查下下载的包是不是有问题,直观上是某个包没找到。

      a、flask-sqlacodegen包是否下载成功

      点击File-》Setting,弹出下面窗口:如果存在框中内容,则说明包是成功下载的。

      b、sqlacodegen的包是否删除(用flask-sqlacodegen就不能有sqlacodegen包,会有重复包名,会导致调用失败)

      不过这种情况会报另外一个错:flask-sqlacodegen: error: unrecognized arguments: --flask

    解决办法:

      排除包是否下载成功的问题后,接着就想到是否是版本的问题,导致sqlacodegen.main调用失败,这就需要重新下载其他版本。

      a、当前最新版本的flask-sqlacodegen的版本是1.1.8,在pip时选择下载较低版本的,如1.1.6版本(可以自行尝试)

      先将之前下载的1.1.8版本的flask-sqlacodegen包删除,然后再在控制台输入下面命令下载1.1.6版本的flask-sqlacodegen:

    1 pip install "flask-sqlacodegen==1.1.6"

      下载完成后执行数据库表转Model命令发现执行成功:

  • 相关阅读:
    scrapy中selenium的应用
    Django的锁和事务
    redis
    【leetcode】187. Repeated DNA Sequences
    【leetcode】688. Knight Probability in Chessboard
    【leetcode】576. Out of Boundary Paths
    【leetcode】947. Most Stones Removed with Same Row or Column
    【leetcode】948. Bag of Tokens
    【leetcode】946. Validate Stack Sequences
    【leetcode】945. Minimum Increment to Make Array Unique
  • 原文地址:https://www.cnblogs.com/pengpengdeyuan/p/14241364.html
Copyright © 2011-2022 走看看