/
Flash_A
/
SubjectTemplate
Обзор
Документация
Войти
/
Flash_A
/
SubjectTemplate
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
metro/create_users.py
97 строк
4 KB
FlashAnton
Добавлены материалы от студентов
22 янв 2026, 21:16
22 янв 2026, 21:16
511daf0
Код
Авторство
О чём код?
#!/usr/bin/env python # -*- coding: utf-8 -*- """ Скрипт для создания пользователей в базе данных """ from app import app, db, User from werkzeug.security import generate_password_hash def create_users(): """Создает пользователей в базе данных""" with app.app_context(): print("\n" + "=" * 60) print("Создание пользователей") print("=" * 60 + "\n") users_to_create = [ { 'username': 'scheduler', 'password': 'password', 'role': 'scheduler', 'name': 'Нарядчик' }, { 'username': 'driver', 'password': 'password', 'role': 'driver', 'name': 'Машинист' }, { 'username': 'driver1', 'password': 'password', 'role': 'driver', 'name': 'Иванов И.И.' }, { 'username': 'driver2', 'password': 'password', 'role': 'driver', 'name': 'Петров П.П.' }, { 'username': 'driver3', 'password': 'password', 'role': 'driver', 'name': 'Сидоров С.С.' } ] for user_data in users_to_create: # Проверяем, существует ли пользователь existing_user = db.session.scalar( db.select(User).filter_by(username=user_data['username']) ) if existing_user: print(f"✓ Пользователь '{user_data['username']}' уже существует") print(f" ID: {existing_user.id}") print(f" Имя: {existing_user.name}") print(f" Роль: {existing_user.role}") # Обновляем данные existing_user.password_hash = generate_password_hash(user_data['password']) existing_user.name = user_data['name'] existing_user.role = user_data['role'] db.session.commit() print(f" → Данные обновлены\n") else: print(f"+ Создаем пользователя '{user_data['username']}'...") new_user = User( username=user_data['username'], password_hash=generate_password_hash(user_data['password']), role=user_data['role'], name=user_data['name'] ) db.session.add(new_user) db.session.commit() print(f" Имя: {user_data['name']}") print(f" Роль: {user_data['role']}\n") print("=" * 60) print("Все пользователи созданы/обновлены!") print("=" * 60 + "\n") # Показываем всех пользователей all_users = db.session.scalars(db.select(User)).all() print(f"Всего пользователей в базе: {len(all_users)}\n") print("Учетные данные для входа:") print("-" * 60) for user in all_users: role_name = "Нарядчик" if user.role == "scheduler" else "Машинист" print(f" {user.username:15} / password ({role_name}: {user.name})") print("-" * 60 + "\n") if __name__ == '__main__': create_users()