加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在Flask中动态创建和保存模型 – Sqlalchemy

发布时间:2020-12-20 13:42:44 所属栏目:Python 来源:网络整理
导读:我正在写一个烧瓶webapp.我需要能够基于用户输入创建模型并基于模型创建表.此外,我还希望以后能够使用该模型(在重新启动Web服务器之后).这样做的最佳方式是什么? 我正在使用带有sqlalchemy的烧瓶进行ORM. 解决方法 你将有很多动态查询man. 你见过 INFORMATI
我正在写一个烧瓶webapp.我需要能够基于用户输入创建模型并基于模型创建表.此外,我还希望以后能够使用该模型(在重新启动Web服务器之后).这样做的最佳方式是什么?

我正在使用带有sqlalchemy的烧瓶进行ORM.

解决方法

你将有很多动态查询man.

你见过INFORMATION_SCHEMA.tables and 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*)

之后,您将拥有包含所有表的描述的数组all_table_definitions和包含ORM表对象的my_tables以查询数据

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读