получить имена столбцов из переменных sqlite python3 sqlalchemy - PullRequest
0 голосов
/ 18 мая 2019

Я хочу сохранить данные, хранящиеся в переменной x, в базу данных sqlite с помощью колбы sqlalchemy. Как сделать это возможным.

Вот код, который я написал:

from flask import Flask
from flask_httpauth import HTTPBasicAuth
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/u.db'
db = SQLAlchemy(app)

class User(db.Model) :
    x = ['username = "sam"', 'password = "sam123"']
    u1 = (x[0].split()[0])
    p1 = (x[1].split()[0])
    print(u1,p1)
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key = True)
    u1 = db.Column(db.String(32), index = True)
    p1 = db.Column(db.String(128))

if __name__ == '__main__':
    db.create_all()
    print("db created")
    app.run(host='0.0.0.0', port=5001)

таблица создана в sqlite:

id   u1  p1

Требуемая таблица для создания в sqlite и данные для загрузки:

id username password
1  sam      sam123

1 Ответ

2 голосов
/ 18 мая 2019

Ваша таблица должна определить столбцы с нужными именами:

class User(db.Model) :

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key = True)
    username = db.Column(db.String(32), index = True)
    password = db.Column(db.String(128))

Вы можете сделать функцию для извлечения имени пользователя и пароля из x:

def get_user_data(data):
    user_data = []
    for item in data:
        part = item.partition(' = ')[2]
        cleaned = part.replace('"', '')
        user_data.append(cleaned)
    return user_data

И создайте экземпляр User следующим образом:

username, password = get_user_data(x)
user = User(username=username, password=password)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...