Vin*_*oel 5 python flask python-2.7 flask-sqlalchemy
我正在写一个 Flask webapp。我需要能够基于用户输入创建模型并基于模型创建表。此外,我还希望能够稍后使用该模型(在重新启动 Web 服务器之后)。这样做的最佳方法是什么?
我正在为 ORM 使用带有 sqlalchemy 的烧瓶。
你将会有很多动态查询。
你见过它INFORMATION_SCHEMA.tables
的INFORMATION_SCHEMA.columns
样子吗?
基本上,您将使用它们或在数据库中创建这些表的克隆。
然后,您将从这些表中读取信息来动态执行如下操作:
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
def make_metadata(source):
...
return MetaData(...)
def make_column(column_definition):
return Column(....)
all_table_definitions = ... # array of records from your custom_tables
all_column_definitions = ... # map of table name to array of column definition for your tables from custom_columns
my_tables = {}
for t in all_table_definition:
columns = [make_column(c) for c in all_column_definitions[t.name]]
new_table = Table(t.table_name, make_metadata(t.metadata), columns*)
Run Code Online (Sandbox Code Playgroud)
之后,您将拥有包含 all_table_definitions
所有表描述的数组以及my_tables
用于查询数据的 ORM 表对象