#python #flask-sqlalchemy #flask-login
Вопрос:
У меня есть база данных sqlite, использующая flask_login. Настройка работает локально, но не на реальном VPS (все еще может войти в систему, но не может добавить новых пользователей в БД)
Обновить:
после удаления блока try-catch я получил фактическую ошибку:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) attempt to write a readonly database
Я запустил следующее разрешение, но оно все еще не работает:
chmod 666 users.db sudo chown www-data /var/www/mywebsite/db/ sudo chown -R www-data: /var/www/mywebsite/db/
результатом getfacl users.db
проверки разрешений является:
# file: users.db # owner: www-data # group: www-data user::rw- group::rw- other::rw-
ОБНОВЛЕНИЕ 2:
Я выполнил эти 4 команды, и это сработало:
sudo chown -R www-data:www-data /var/www/mywebsite/db/ sudo chmod -R u w /var/www/mywebsite/db/ sudo chmod 666 users.db sudo chmod 777 db
Я думаю, что разрешения 777 представляют собой угрозу безопасности, хотя, но это не сработало с 666. Как мне установить его без ущерба для безопасности?
config.py import configparser from sqlalchemy import create_engine config = configparser.ConfigParser() config.read('config.txt') engine = create_engine(config.get('database', 'con'))
config.txt [database] con = sqlite:///users.db
failing code in auth.py def add_user(first, last, password, email, engine): table = user_table() hashed_password = generate_password_hash(password, method="sha256") values = dict(first=first, last=last, email=email, password=hashed_password) statement = table.insert().values(**values) conn = engine.connect() ## cannot connect here conn.execute(statement) conn.close() return True
Комментарии:
1. вы нашли какое-нибудь решение этой проблемы?
2. да, изложено в моем обновлении 2 — я не на 100%, если это идеальное решение, но оно работает