from flask import Flask,session from flask_restful Api,Resource from flask_restful.reqparse RequestParser from flask_sqlalchemy SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = mysql://root:mysql@127.0.0.1:3306/flask' app.config[SQLALCHEMY_TRACK_MODIFICATIONS'] = False api = Api(app) app.secret_key = fdafsdafsafsafsa db = SQLAlchemy(app) class User(db.Model): __tablename__ = t_user id =db.Column(db.Integer,primary_key=True) name = db.Column(db.String(64)) mobile = db.Column(db.String(64)) def to_dict(self): return { id:self.id,name:self.name,1)">mobile:self.mobile,} Login(Resource): post(self): parser = RequestParser() parser.add_argument(',required=True,location="args") parser.add_argument(code) req = parser.parse_args() if req.code !=123456: return {msg':code_error} user = User.query.filter(User.mobile==req.mobile).first() if not user: user = User(name=req.mobile,mobile=req.mobile) db.session.add(user) db.session.commit() session[uer_id user.id ': 登录成功} Info(Resource): get(self): user_id = session.get(user_id) user_id: message请先登录'},401 user = User.query.filter(User.id==user_id).first() user.to_dict() api.add_resource(Login,1)">/login) api.add_resource(Info,1)">/info) if __name__ == __main__: app.run(debug=True)
装饰器版
} login_requried(func): def wrapper(*args,**kwargs): user_id = session.get( user = User.query.filter(User.id==user_id).first() g.user = user return func(*args,1)">kwargs) wrapper Info(Resource): method_decorators = {get:[login_requried]} get(self): g.user.to_dict() api.add_resource(Login,1)">: app.run(debug=True)
before_request和装饰器版
} @app.before_request before_request(): user_id = session.get() user = User.query.filter(User.id == user_id).first() g.user =user kwargs): g.user: : app.run(debug=True)