flask(四)初步实现用户登录


登录页渲染

项目文件中创建目录static,用于存放静态文件,我这里使用的是H-ui.admin_v3.1.3.1,需要的可以自己去下载,将解压后的文件夹中的lib、static、temp放入刚创建的static中。
templates中创建文件:admin/login.html




    
    
    
    
    

    

    
    
    
    

    

    登录 
    
    



{% if message %}

{{ message }}

{% endif %}

视图函数渲染静态页面:修改admin下的views.py

from flask import Blueprint, render_template

bp = Blueprint('admin',__name__)
@bp.route("/admin")
def index():
  return render_template('admin/index.html')

访问:http://127.0.0.1:5000/admin/ 可查看运行效果

初步实现用户登录

修改admin/views.py文件:

from flask import Blueprint, render_template,request,session,redirect,url_for
from .models import Users

bp = Blueprint('admin',__name__,url_prefix='/admin')
@bp.route("/login/",methods=['GET','POST'])
def login():
    error = None
    if request.method == 'GET':
        return render_template('admin/login.html')
    else:
        user = request.form.get('username')
        pwd = request.form.get('password')
        users = Users.query.filter_by(username=user).first()
        if users:
            if user == users.username and users.chek_password(pwd):
                session['user_id'] = users.uid  # 用户id存于session
                return redirect(url_for('admin.index'))
            else:
                error = "用户名或密码错误"
                return render_template('admin/login.html',message=error)
        else:
            return render_template('admin/login.html',message="别试了,没有此用户!")
@bp.route('/')
def index():
    return render_template('admin/index.html')

访问:http://127.0.0.1:5000/admin/login/可以进行登录验证