Где я могу найти фрагменты Python, которые используют SQLite для создания столбцов? - PullRequest
0 голосов
/ 29 марта 2019

Я работаю над небольшим личным проектом, в котором используются обычные методы работы с колбами, такие как администрирование пользователей и ограничение контента, и я хочу создать новый столбец, который будет обеспечивать роль пользователя в моей базе данных SQLite, которая генерируетсяскрипт Python. В частности, я хочу дать роль user для каждого нового реестра.Где я могу найти пример этого или решения?

Я пробовал решение, используя классы , но я думаю, что я ошибся или, возможно, я не понял его полностью.

Чтобы быть более точным, я попробовал это, и я получаю следующую ошибку

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: user.role
[SQL: SELECT user.id AS user_id, user.username AS user_username, user.password AS user_password, user.email AS user_email, user.role AS user_role
FROM user
WHERE user.username IN (?)
 LIMIT ? OFFSET ?]
[parameters: ('a', 1, 0)]
class User(Base):
    __tablename__ = "user"

    id = Column(Integer, primary_key=True)
    username = Column(String(30), unique=True)
    password = Column(String(30))
    email = Column(String(50))
    role = Column(String(50))

    def __repr__(self):
        return '<User %r>' % self.username

1 Ответ

0 голосов
/ 02 апреля 2019

В вашем файле init.py вы должны сделать это следующим образом:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

def create_app():
   app = Flask(__name__)
   db.init_app(app)
   db.app = app

   from .models import User
   db.create_all()

.models - это файл .py, где находится ваша User модель, и имейте в виду, что для вызова

from .models import User
db.create_all()

после того, как вы уже создали приложение и задали db:

app = Flask(__name__)
db.init_app(app)
db.app = app

в противном случае вы получите исключение, которое, понятно, что вы не можете работать с БД до того, как создадитеприложение и сама база данных.

Решение сверху - если вы создаете проект с нуля, если у вас есть текущий проект, и вам нужно просто добавить еще одну таблицу или обновить существующие решения, это: https://flask -migrate.readthedocs.io / en / latest /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...