вставка данных в Postgres с использованием SQL-алхимии в колбе - PullRequest
0 голосов
/ 30 января 2019

Я передаю информацию с моего локального компьютера, идентификатора и имени человека на сервер Ubuntu.затем эта информация будет прочитана и передана в базу данных.Я использую приведенный ниже код, но каким-то образом я не могу это сделать.Я новичок во всем этом, поэтому не уверен, что мне не хватает

@app.route("/personInformation", methods=['POST'])
def parsingData():

        data = request.get_json(force=True)
        personID = data['person_id']
        personName = data['person_name']

        import pandas as pd
        import sqlalchemy as sql
        import sqlalchemy.orm as orm         

        db=sql.create_engine(connectionString)            
        metadata = sql.schema.MetaData(bind=db,reflect=True)
        table = sql.Table('patient_all_info', metadata, autoload=True)

        class Row(object):
            pass
        rowmapper = orm.Mapper(Row,table)
        Sess = orm.sessionmaker(bind = db)
        session = Sess()
        row1 = Row() 
        row1.person_id = personID
        row1.person_name = personName
        session.add(row1)
        session.commit()
        return "sent, no error"

1 Ответ

0 голосов
/ 30 января 2019

не могли бы вы попробовать конструкцию ниже?Я адаптировал его из одного из моих проектов.

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData

Base = declarative_base()
engine = create_engine(connstring)
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()    
conn = engine.connect()    
metadata = MetaData()

SomeDataTable = Table('TableName', metadata,
    Column('Column1', Integer, primary_key=True),
    Column('Column2', String(250), nullable=False),
    schema = 'schema_name'
)

stmt = SomeDataTable.insert().values([{"Column1": 1},{"Column2": "test"}])
conn.execute(stmt)
...