代码改变世界

1111

2017-11-21 21:29  019王泽  阅读(185)  评论(0)    收藏  举报

登录功能完成:

  1. js:设置return
  2. html:设置
    1. form
    2. input
  3. py:
    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。

session:

  1. 从`flask`中导入`session`
  2. 设置`SECRET_KEY`
  3. 操作字典一样操作`session`:增加用户名`session['username']=`username
    from flask import Flask,render_template,request,redirect,url_for,session
    from flask_sqlalchemy import SQLAlchemy
    import config
    
    app=Flask(__name__)
    app.config.from_object(config)
    db=SQLAlchemy(app)
    
    class User(db.Model):
        __tablename__='user'
        id=db.Column(db.Integer,primary_key=TabError,autoincrement=True)
        username=db.Column(db.String(20),nullable=False)
        password=db.Column(db.String(20),nullable=False)
        nickname = db.Column(db.String(20), nullable=True)
    # db.create_all()    #是否链接成功
    
    
    # 数据添加
    # user=User(username='ma',password='gg')
    # db.session.add(user)
    # db.session.commit()
    #
    #
    # 数据更新
    #
    # user = User.query.filter(User.username=='hh').first()
    # user.password='gg'
    # db.session.commit()
    #
    #
    # 数据查询
    # user = User.query.filter(User.username=='ma').first()
    # print(user.username,user.password)
    #
    # 数据删除
    # user = User.query.filter(User.username=='ma').first()
    # db.session.delete(user)
    # db.session.commit()
    
    
    # session会话连接
    # filter()过滤器
    # route制定路径和函数之间的关系
    # def定义一个变量
    
    @app.route('/')
    def switch():
        return render_template('switch.html')
    
    
    @app.route('/login/',methods=['GET','POST'])# 跳转登陆,methods定义它有两种请求方式
    def login():
        if request.method == 'GET':
          return render_template('login.html')
        else:
            username = request.form.get('user')
            password = request.form.get('psw')
            user = User.query.filter(User.username == username).first()  # 判断用户名是否存在
            if user:
                if user.password==password:
                    session['username'] = username
                    session.permanent = True
                    return   redirect(url_for('switch'))
                else:
                    return u'密码错误'
            else:
                return u'用户名不存在'
    
    
    @app.route('/register/',methods=['GET','POST'])# 跳转注册,methods定义它有两种请求方式
    def register():
        if request.method == 'GET':
            return render_template('register.html')
        else:
    
            username = request.form.get('user')
            password = request.form.get('psw')
            nickname = request.form.get('nickname')
            user = User.query.filter(User.username == username).first() # 判断用户名是否存在
            if user:
                return u'该用户已存在'
            else:
                user = User(username=username,password=password,nickname=nickname)
                db.session.add(user)
                db.session.commit()
                return redirect(url_for('login'))
    
    @app.route('/wenda/')
    def wenda():
        return render_template('wenda.html')
    
    
    
    if __name__ == '__main__':
        app.run(debug=True)