zoukankan      html  css  js  c++  java
  • 一百:CMS系统之修改密码逻辑

    定义一个基类form,用于获取错误信息

    from wtforms import Form


    class BaseForm(Form):
    def get_error(self):
    # a = {'aaa': [xxx], 'bbb': [www]} a.popitem()[1][0]=xxx
    message = self.errors.popitem()[1][0] # 取第一个错误的错误信息
    return message

    form验证,继承自定义的BaseForm

    from wtforms import StringField, IntegerField
    from wtforms.validators import Email, InputRequired, Length, EqualTo

    from ..forms import BaseForm


    class ResetpwdForm(BaseForm):
    oldpwd = StringField(validators=[InputRequired(message='请输入密码'), Length(6, 20, message='密码6~20位')])
    newpwd = StringField(validators=[InputRequired(message='请输入密码'), Length(6, 20, message='密码6~20位')])
    newpwd2 = StringField(validators=[EqualTo('newpwd', message='两次密码不一致')])


    class LoginForm(BaseForm):
    email = StringField(validators=[InputRequired(message='请输入邮箱'), Email(message='邮箱格式错误')])
    password = StringField(validators=[InputRequired(message='请输入密码'), Length(6, 20, message='密码6~20位')])
    remember = IntegerField()

    视图逻辑

    class ResetPwd(views.MethodView):
    decorators = [login_required] # 校验登录状态

    def get(self, message=None):
    return render_template('cms/cms_resetpwd.html', message=message)

    def post(self):
    form = ResetpwdForm(request.form)
    if form.validate():
    newpwd = form.newpwd.data
    oldpwd = form.oldpwd.data
    user = g.cms_user
    if user.check_password(oldpwd):
    user.password = newpwd
    db.session.commit()
    return jsonify({'code': 200, 'message': '修改成功'})
    else:
    return jsonify({'code': 400, 'message': '旧密码错误'})
    else:
    return jsonify({'code': 400, 'message': form.get_error()})


    bp.add_url_rule('/resetpwd/', view_func=ResetPwd.as_view('resetpwd'))

    请求

  • 相关阅读:
    网络监听主要是基于ASIHTTPRequest内的Reachability的调用
    Quartz2D之渐变使用初步
    IOS检测网络连接状态(转)
    ios xcode如何修改应用的名称
    使用CAShapeLayer与UIBezierPath画出想要的图形
    JSONValue failed. Error is: Unescaped control character [0x09]
    ASIHTTPRequest和ASIFormDataRequest 区别,GET和POST
    ios 图片压缩
    利用dispatch_once创建单例
    利用预渲染加速iOS设备的图像显示
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11914808.html
Copyright © 2011-2022 走看看