Explorar o código

fix: 修复表单检查不显示flash消息的错误

SongZihuan %!s(int64=3) %!d(string=hai) anos
pai
achega
8710020ddb
Modificáronse 3 ficheiros con 30 adicións e 26 borrados
  1. 1 2
      app/app.py
  2. 25 20
      app/home.py
  3. 4 4
      app/test.py

+ 1 - 2
app/app.py

@@ -1,7 +1,6 @@
-from flask import Flask, render_template, flash
+from flask import Flask, render_template
 from flask.logging import default_handler
 from flask_login import LoginManager
-from wtforms import ValidationError
 import configure
 from app import home, test, user, word_list
 import logging.handlers

+ 25 - 20
app/home.py

@@ -2,25 +2,23 @@ from flask import blueprints, url_for, request, redirect, render_template, flash
 from flask_login import login_user, current_user, login_required, logout_user
 from flask_wtf import FlaskForm
 from wtforms import StringField, PasswordField, BooleanField, SubmitField, SelectField
-from wtforms.validators import DataRequired, Length, EqualTo
+from wtforms.validators import DataRequired
 from app.user import load_user, create_user, check_template, get_template
 from typing import ClassVar
 
 
 class LoginForm(FlaskForm):
-    name = StringField("User name", validators=[DataRequired(), Length(1, 32)])
-    passwd = PasswordField("Passwd", validators=[DataRequired(), Length(4, 32)])
+    name = StringField("User name", validators=[DataRequired()])
+    passwd = PasswordField("Passwd", validators=[DataRequired()])
     remember = BooleanField("Remember me")
     submit = SubmitField("Login")
 
 
 def register_form() -> ClassVar:
     class Form(FlaskForm):
-        name = StringField("User name", validators=[DataRequired(), Length(1, 32)])
+        name = StringField("User name", validators=[DataRequired()])
         template = SelectField("Template", choices=get_template())
-        passwd = PasswordField("Passwd", validators=[DataRequired(),
-                                                     EqualTo("passwd_again", message="两次输入密码不相同"),
-                                                     Length(4, 32)])
+        passwd = PasswordField("Passwd", validators=[DataRequired()])
         passwd_again = PasswordField("Passwd again", validators=[DataRequired()])
         submit = SubmitField("register")
     return Form()
@@ -68,20 +66,27 @@ def register():
 
     register_ = register_form()
     if register_.validate_on_submit():
-        template = register_.template.data
-        if len(template) == 0:
-            template = "base"
-        if not check_template(template):
-            flash(f"Template '{template}' not exist")
-            abort(400)
-        flat, user = create_user(template, register_.name.data, register_.passwd.data)
-        if user is not None:
-            current_app.logger.debug(f"{register_.name.data} with {register_.template.data} register success")
-            flash("Register success")
+        if register_.passwd.data != register_.passwd_again.data:
+            flash("The two entered passwords do not match")
+        elif len(register_.passwd.data) < 4 or len(register_.passwd.data) > 32:
+            flash("Please enter a password of length 4-32")
+        elif len(register_.name.data) > 16:
+            flash("Please enter a username of length 1-16")
         else:
-            current_app.logger.debug(
-                f"{register_.name.data} with {register_.template.data} register fail [{flat}]")
-            flash("User is already exist")
+            template = register_.template.data
+            if len(template) == 0:
+                template = "base"
+            if not check_template(template):
+                flash(f"Template '{template}' not exist")
+                abort(400)
+            flat, user = create_user(template, register_.name.data, register_.passwd.data)
+            if user is not None:
+                current_app.logger.debug(f"{register_.name.data} with {register_.template.data} register success")
+                flash("Register success")
+            else:
+                current_app.logger.debug(
+                    f"{register_.name.data} with {register_.template.data} register fail [{flat}]")
+                flash("User is already exist")
     return redirect(url_for("home.index"))
 
 

+ 4 - 4
app/test.py

@@ -3,7 +3,7 @@ from flask import send_file
 from flask_login import current_user, login_required, logout_user
 from flask_wtf import FlaskForm
 from wtforms import StringField, SubmitField, BooleanField, PasswordField, FileField
-from wtforms.validators import DataRequired, Length
+from wtforms.validators import DataRequired
 from app.user import UserWordDataBase
 from itsdangerous import URLSafeTimedSerializer
 from itsdangerous.exc import BadData
@@ -16,15 +16,15 @@ test = blueprints.Blueprint("test", __name__)
 
 
 class SearchForm(FlaskForm):
-    search = StringField("Word", validators=[DataRequired(), Length(1, 50)])
+    search = StringField("Word", validators=[DataRequired()])
     from_internet = BooleanField("Internet")
     add_to_db = BooleanField("Add")
     submit = SubmitField("Search")
 
 
 class ResetDeleteForm(FlaskForm):
-    name = StringField("User name", validators=[DataRequired(), Length(1, 32)])
-    passwd = PasswordField("Passwd", validators=[DataRequired(), Length(4, 32)])
+    name = StringField("User name", validators=[DataRequired()])
+    passwd = PasswordField("Passwd", validators=[DataRequired()])
     submit = SubmitField("Submit")