Files
2024-05-26 13:25:28 +08:00

53 lines
2.0 KiB
Python

from flask import Flask, request, send_from_directory
from dynaconf import FlaskDynaconf
from flask_sqlalchemy import SQLAlchemy
from flask_security import Security, SQLAlchemyUserDatastore, auth_required, hash_password, current_user, login_user, verify_password, roles_accepted, logout_user
from flask_security.models import fsqla_v3 as fsqla
from flask_socketio import SocketIO, join_room, leave_room, emit
from flask_wtf import CSRFProtect
import sys
app = Flask("GalaxyMusicHall")
FlaskDynaconf(app, settings_files=["instance/config.toml", "instance/.secrets.toml"], environments=True)
db = SQLAlchemy(app)
fsqla.FsModels.set_db_info(db)
class Role(db.Model, fsqla.FsRoleMixin):
pass
class User(db.Model, fsqla.FsUserMixin):
pass
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
CSRFProtect(app)
app.security = Security(app, user_datastore)
if __name__ == "__main__":
if len(sys.argv) > 1:
with app.app_context():
print("初始化数据库...")
db.create_all()
app.security.datastore.find_or_create_role(name="admin")
app.security.datastore.find_or_create_role(name="user")
app.security.datastore.find_or_create_role(name="player")
with open(sys.argv[1], "r", encoding="utf-8") as file:
for i in file.readlines():
username, password = i.strip().split(',')
print(username,password)
if not app.security.datastore.find_user(username=username):
app.security.datastore.create_user(username=username, email= username+"@null.com", password=hash_password(password))
user = app.security.datastore.find_user(username=username)
app.security.datastore.add_role_to_user(user, "user")
db.session.commit()
else:
print("数据库连接有效")
print("请在参数1指定.csv文件用于导入用户")