温馨提示:本系列是以字数分章节的(((
1、修改密码功能
新建apps\forms.py
from wtforms import Form
class BaseForm(Form):
def get_error(self):
message = self.errors.popitem()[1][0]
return message
修改apps\cms\forms.py
from wtforms import Form, StringField, IntegerField
from wtforms.validators import Email, InputRequired, Length, EqualTo
from ..forms import BaseForm
class LoginForm(Form):
email = StringField(validators=[Email(message="请输入正确的邮箱格式"), InputRequired(message="请输入邮箱")])
password = StringField(validators=[Length(6, 20, message="密码长度不够或超出")])
remember = IntegerField()
class ReserpwdForm(BaseForm):
oldpwd = StringField(validators=[Length(6, 20, message="请输入正确格式的旧密码")])
newpwd = StringField(validators=[Length(6, 20, message="请输入正确格式的新密码")])
newpwd2 = StringField(validators=[EqualTo("newpwd", message="两次输入的密码不一致")])
修改apps\cms\views.py
from flask import Blueprint, views, render_template, request, session, url_for, redirect
from .forms import LoginForm
from .models import CMSUser
from .decorators import login_required
cms_blueprint = Blueprint("cms", __name__, url_prefix="/cms")
@cms_blueprint.route("/")
@login_required
def index():
return render_template("cms/cms_index.html")
@cms_blueprint.route("/logout/")
@login_required
def logout():
del session[config.CMS_USER_ID]
return redirect(url_for("cms.login"))
@cms_blueprint.route("/profile/")
@login_required
def profile():
return render_template("cms/cms_profile.html")
class LoginView(views.MethodView):
def get(self, message=None):
return render_template("cms/cms_index.