子账号管理秒杀涉及多个基础概念和技术要点。以下是对该问题的详细解答:
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash, check_password_hash
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sub_accounts.db'
db = SQLAlchemy(app)
class SubAccount(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password_hash = db.Column(db.String(128))
role = db.Column(db.String(20), nullable=False)
def set_password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
@app.route('/create_account', methods=['POST'])
def create_account():
data = request.json
new_account = SubAccount(username=data['username'], role=data['role'])
new_account.set_password(data['password'])
db.session.add(new_account)
db.session.commit()
return jsonify({'message': 'Account created successfully!'})
@app.route('/login', methods=['POST'])
def login():
data = request.json
account = SubAccount.query.filter_by(username=data['username']).first()
if account and account.check_password(data['password']):
return jsonify({'message': 'Login successful!', 'role': account.role})
else:
return jsonify({'message': 'Invalid credentials'}), 401
if __name__ == '__main__':
db.create_all()
app.run(debug=True)
通过以上内容,希望能帮助您更好地理解和实施子账号管理秒杀的相关工作。
领取专属 10元无门槛券
手把手带您无忧上云