使用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命令发现执行成功:

flask从数据库反向导入Model以及出现报错No module named sqlacodegen.main的更多相关文章

  1. python踩坑系列之导入包时下划红线及报错“No module named”问题

    python踩坑系列之导入包时下划红线及报错“No module named”问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshand ...

  2. centos6.5 导入matplotlib报错 No module named '_tkinter

    1.解决方案 在centos系统下,导入matplotlib时,出现ImportError: No module named ‘_tkinter’的错误,首先 yum list installed | ...

  3. Python 导入requests报错No module named requests

    刚开始是在Pycharm里面,发现就是不对,导入老提示No module named requests这个错误.后面发现是指向的python.exe路径不对,到setting里面设置换一下路径就好.

  4. flask报错No module named 'flask.ext'

    解决: from flask.ext.httpauth import HTTPBasicAuth 改为 from flask_httpauth import HTTPBasicAuth 提示Modul ...

  5. flask-cache报错No module named 'flask.ext;解决方案

    找到flask-cache包中的jinja2ext.py,将from flask.ext.cache import make_template_fragment_key改为from flask_cac ...

  6. Python:导入numpy报错 No module named numpy

    Numpy是python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比python自身的嵌套列表结构要高效的多.但是在使用numpy时可能会出错(如上图). 解决办法:下载安装对应版本 ...

  7. 项目导入myeclipse10后jsp报错问题

    电脑重装系统装了个myeclipse10,当项目导入时发现jsp报错,原本以为是jdk版本问题,在网上找了资料才知道原来是myeclipse10相对之前版本对js的检查更加严格了.可以用以下方法解决: ...

  8. 导入 sun.net.TelnetInputStream; 报错

    // 对于导入 sun.net.TelnetInputStream; 报错 是权限不足 myeclise 默认不是使用sun 下面的额工具类 也可以自己建立一个 TelnetInputStream 继 ...

  9. 连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的,

    连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的, 2018-03-12 17:08:52.532DEBUG[localhost-startStop-1]o.s.beans.factor ...

随机推荐

  1. 老猿学5G扫盲贴:中国移动5G融合计费漫游计费架构和路由方案

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...

  2. 使用文件描述符作为Python内置函数open的file实参调用示例

    一.关于文件描述符 open()函数的file参数,除了可以接受字符串路径外,还可以接受文件描述符(file descriptor),文件描述符是个整数,对应程序中已经打开的文件. 文件描述符是操作系 ...

  3. PyQt(Python+Qt)学习随笔:枚举类QTreeWidgetItem.ItemType、QListWidgetItem.ItemType的取值及含义

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在Model/View的便利类QTreeWidget.QListWidgetItem中的项类型分别是 ...

  4. 转:为什么浏览器的user-agent字符串以'Mozilla'开头呢?

    本文转自:https://blog.csdn.net/S_gy_Zetrov/article/details/79463093 感谢sgyzetrov翻译 如果熟悉元素审查的童鞋,很多都会发现requ ...

  5. jarvisoj flag在管理员手上

    jarvisoj flag在管理员手上 涉及知识点: (1)代码审计和cookie注入 (2)哈希长度拓展攻击 解析: 进入题目的界面.看到 那么就是想方设法的变成admin了.挂上御剑开始审计.发现 ...

  6. bugku login4

    (前排提示:这次思路写的极不清晰,可能只有我自己看的懂,打个预防针QAQ) 首先看题: 扫描,拿到了 .index.php.swp 这个文件是可以复原的. 上面的是重要的源码.审计之后发现这是CBC加 ...

  7. 一篇彻底理解JS中的prototype、__proto__与constructor

    1.基本类型不是对象(boolean.undefined.number.string) 2.引用类型都是对象(Array,function ,Object) 3.对象是通过函数创建,并且强调,对象字面 ...

  8. new一个对象时,会经历哪些步骤

    (1)创建一个对象:(2)将构造函数的作用域赋值给新对象(因此this就指向了这个新对象):(3)执行构造函数中的代码(为这个新对象添加属性):(4)返回新对象

  9. 安卓 Android Studio 下载

    http://www.android-studio.org/    下载地址 https://blog.csdn.net/qq_41976613/article/details/91432304    ...

  10. Clickhouse 在大数据分析平台 - 留存分析上的应用

    导语 | 本文实践了对于千万级别的用户,操作总数达万级别,每日几十亿操作流水的留存分析工具秒级别查询的数据构建方案.同时,除了留存分析,对于用户群分析,事件分析等也可以尝试用此方案来解决. 文章作者: ...