flask-登录操作

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)

 

相关文章

Jinja2:是Python的Web项目中被广泛应用的模板引擎,是由Pyt...
监听QQ消息并不需要我们写代码,因为市面上已经有很多开源QQ...
【Flask框架】—— 视图和URL总结
python+web+flask轻量级框架的实战小项目。登录功能,后续功...
有了这个就可以配置可信IP,关键是不需要企业认证,个人信息...