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

flask从数据库反向导入Model以及出现报错No module named sqlacodegen.main的更多相关文章
- python踩坑系列之导入包时下划红线及报错“No module named”问题
python踩坑系列之导入包时下划红线及报错“No module named”问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshand ...
- centos6.5 导入matplotlib报错 No module named '_tkinter
1.解决方案 在centos系统下,导入matplotlib时,出现ImportError: No module named ‘_tkinter’的错误,首先 yum list installed | ...
- Python 导入requests报错No module named requests
刚开始是在Pycharm里面,发现就是不对,导入老提示No module named requests这个错误.后面发现是指向的python.exe路径不对,到setting里面设置换一下路径就好.
- flask报错No module named 'flask.ext'
解决: from flask.ext.httpauth import HTTPBasicAuth 改为 from flask_httpauth import HTTPBasicAuth 提示Modul ...
- flask-cache报错No module named 'flask.ext;解决方案
找到flask-cache包中的jinja2ext.py,将from flask.ext.cache import make_template_fragment_key改为from flask_cac ...
- Python:导入numpy报错 No module named numpy
Numpy是python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比python自身的嵌套列表结构要高效的多.但是在使用numpy时可能会出错(如上图). 解决办法:下载安装对应版本 ...
- 项目导入myeclipse10后jsp报错问题
电脑重装系统装了个myeclipse10,当项目导入时发现jsp报错,原本以为是jdk版本问题,在网上找了资料才知道原来是myeclipse10相对之前版本对js的检查更加严格了.可以用以下方法解决: ...
- 导入 sun.net.TelnetInputStream; 报错
// 对于导入 sun.net.TelnetInputStream; 报错 是权限不足 myeclise 默认不是使用sun 下面的额工具类 也可以自己建立一个 TelnetInputStream 继 ...
- 连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的,
连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的, 2018-03-12 17:08:52.532DEBUG[localhost-startStop-1]o.s.beans.factor ...
随机推荐
- 问题: 刚安装的PyCharm执行代码报“ModuleNotFoundError: No module named XXXX”错
老猿刚安装好PyCharm后,直接新建了一个工程文件并导入了一个已有的爬虫程序文件,该文件原来在Python解释器下能执行,但在PyCharm下执行时报错: F:\学习\python\SRC\proj ...
- 【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 )
系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...
- 扩展Linux网络栈
扩展Linux网络栈 来自Linux内核文档.之前看过这篇文章,一直好奇,问什么一条网络流会固定在一个CPU上进行处理,本文档可以解决这个疑问.为了更好地理解本文章中的功能,将这篇文章穿插入内. 简介 ...
- Python调用云服务器AWVS13API接口批量扫描(指哪打哪)
最近因为实习的原因,为了减少一部分的工作量,在阿里云服务器上搭建了AWVS扫描器 方便摸鱼 但是发现AWVS貌似没有批量添加的方法,作者只好把整理的URL.txt捏了又捏 手动输入是不可能手动输入的, ...
- Trie 练习记录
蒟蒻以前写的逊爆讲解 Trie CF665E Beautiful Subarrays 代码 把之前每个前缀和放进 trie 树里,然后 trie 树上查询即可. CF37C Old Berland L ...
- Python条件判断和循环语句
一.条件判断语句 通过一条或多条语句的判断来决定是否执行代码块 1.if语句基本形式: if 判断条件: 语句块 例如: score=75if score>=60: print &q ...
- JavaSE09-(练手)简易学生管理系统
1.学生管理系统实现步骤 案例需求 系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘录入要修改学生 ...
- 测开之数据类型· 第3篇《列表推导式、字典推导式、2种方式创建生成器》
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.列表推导式 二.字典推导式 三.2种方式创建生成器 1.生成器表达式 2.函数里面,通过 y ...
- [日常摸鱼]pojKaka's Matrix Travels-拆点+最大费最大流
方格取数的升级版,每个格子最多取一次. $k=1$的话就是个普及组的dp题,$k=2$就是在之前的基础上多加两维. 然而现在$k$太大了当然就不dp啦 对于$k=1$的情况我们还可以把$(i,j)$向 ...
- 工具-Redis-介绍(99.6.1)
@ 目录 1.nosql介绍 2.Redis特性 3.redis应用场景 关于作者 1.nosql介绍 not only sql,不支持SQL语法.存储结构跟传统关系型数据库中的那种关系表完全不同,n ...