Python遍历对象以使用Flask-SQLAlchemy创建表

时间:2018-09-06 01:30:50

标签: python mysql class flask-sqlalchemy

已编辑 我一直在尝试创建一个类,该类将允许我遍历列表或字典,并生成表和行。 代码开始如下:

from flask_sqlalchemy import SQLAlchemy as sa
from flask import Flask as fl
import pymysql
pymysql.install_as_MySQLdb()

app = fl(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:the_other_stuff'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] =False
DEBUG =True
db = sa(app)

a=['some_stuff','gaaahhhh','lalala','rawr','pizza']

class test(db.Model):
    __tablename__ = 'stuff'
    id = db.Column('id', db.Integer, primary_key = True)
    data = db.Column('data', db.Unicode(50))

    def __init__(self, id, data):
        self.id = id
        self.data = data

def stuff():
    for i in range(len(a)):
        data= a[i]
        i = i + 1
        id = i
        db.session.add(test(id,data))
    db.create_all()
    return db.session.commit()
stuff()

我仍将尝试对其进行结构化,以便它可以使用字典或列表,如果是字典,则将键添加为表名。如果有人拥有该代码,那么我不会与您共享,但如果没有,我会在完成后发布。

2 个答案:

答案 0 :(得分:0)

使用db.session.add / db.session.commitdb对象是从flask_sqlalchemy初始化的。它不是 db.Session

答案 1 :(得分:0)

以下代码自动将数据插入一对多关系表集中。递归函数的行为就像while循环(%timeit对两个函数显示相同的结果)一样,我喜欢它在while循环中的样子。 该函数将索引到列表中的列表,我要深入3次,但将循环修改为简单。 此功能最初旨在像这样推送列表: {{ 1}}每个list[a][i][0]内的每个零值都是相同的值类型,我将其设置为仅执行[i]使其更简单一些,因此如果有人喜欢它可以用作基础它。 [a][i]的速度非常快,但最好将[a][i][0]作为[a][i]的列表,而不是pd.DataFrame。如果np.array不会转到相同的[i],则必须为每组db.Column()声明一个,并找出对其进行索引的方法。
表生成器涉及具有基类的类生成器。我没有有效的示例,但是可以在上传时

[i]