有人知道用Python3中的SQLAlchemy模型制作ER图的方法吗.我找到了sqlalchemy_schemadisplay,它是Python2,因为pydot和ERAlchemy也只是Python2.

推荐答案

你可以试试eralchemy.

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import pandas as pd
from eralchemy import render_er

from sqlalchemy import (MetaData, Table, Column)    
metadata = MetaData()

# create your own model ....
users = Table('users', metadata,
    Column('user_id', Integer(), primary_key=True),
    Column('username', String(15), nullable=False, unique=True),
)    
orders = Table('orders', metadata,
    Column('order_id', Integer()),
    Column('user_id', ForeignKey('users.user_id')),
)
# add your own table ....

# Show ER model from here
filename = 'mymodel.png'
render_er(metadata, filename)
imgplot = plt.imshow(mpimg.imread(filename))
plt.rcParams["figure.figsize"] = (15,10)
plt.show()

然后展示了模型.

enter image description here

我使用的模块包括:

Software Version
Python 3.4.5 64bit
IPython 5.1.0
OS Windows 10
sqlalchemy 1.1.5
eralchemy 1.1.0
matplotlib 2.0.0

Python-3.x相关问答推荐

是否可以使用参数对Flask重定向?

如何绘制交叉验证的AUROC并找到最佳阈值?

Pandas 窗口聚合两个排序表

Python 3 - 给定未知数量的类别动态地将字典嵌套到列表中

合并问卷中多列中的稀疏问题 - Pandas

pymongo 失败并出现错误未定义

将名字转换成姓氏、首字母和中间字母的格式

为什么 f-strings 比 str() 更快地解析值?

解包时是否可以指定默认值?

运行 PyCharm 测试时如何解决django.core.exceptions.ImproperlyConfigured:找不到 GDAL 库?

如何使用pandas python获取数据框中每列的最大长度

Python:如何判断一个项目是否被添加到一个集合中,没有 2x(hash,lookup)

使用 Sympy 方程进行绘图

tensorflow 中 numpy.newaxis 的替代方案是什么?

cv2 python 没有 imread 成员

PIL 在图像上绘制半透明方形覆盖

如何使用 Python 订阅 Websocket API 通道?

0 是 0 == 0(#evaluates 为真?)

没有名为urlparse的模块,但我没有使用 urlparse

Python 2 与 Python 3 - urllib 格式