微电影之密码修改、上下文处理器

mac2022-06-30  26

一、密码修改

1、form表单

class PwdForm(FlaskForm): old_pwd=PasswordField( label="旧密码", validators=[ DataRequired("请输入旧密码!") ], description="旧密码", render_kw={ "class":"form-control", "palaceholder":"请输入旧密码!" } ) new_pwd=PasswordField( label="新密码", validators=[ DataRequired("请输入新密码!") ], description="新密码", render_kw={ "class":"form-control", "palaceholder":"请输入新密码!" }) submit = SubmitField( '提交', render_kw={ "class": "btn-primary", }) #验证旧密码 def validate_old_pwd(self,field): from flask import session pwd=field.data name=session["admin"] admin=Admin.query.filter_by( name=name ).first() if not admin.check_pwd(pwd): raise ValidationError("旧密码错误!")

2、views视图

def pwd(): form=PwdForm() if form.validate_on_submit(): data=form.data admin=Admin.query.filter_by(name=session["admin"]).first() #加密密码 from werkzeug.security import generate_password_hash admin.pwd=generate_password_hash(data["new_pwd"]) db.session.add(admin) db.session.commit() flash("修改密码成功!","ok") #跳出到登录页 redirect(url_for('admin.logout')) return render_template("admin/pwd.html",form=form)

 二、上下文处理器

作用:封装全局变量,展现在模板里面

views视图

@admin.context_processor def tpl_extra(): data = dict( online_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 转化为看得懂的格式 ) return data

html模板调用

<small>{{ online_time }}</small>

 

小技巧:

模板里获取当前用户名

{{ session['admin'] }}

 

转载于:https://www.cnblogs.com/xiangjun555/articles/9405597.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)