Selaa lähdekoodia

feat: form_required使用变量g

SongZihuan 3 vuotta sitten
vanhempi
sitoutus
f75b6efac6
5 muutettua tiedostoa jossa 21 lisäystä ja 13 poistoa
  1. 3 2
      app/archive.py
  2. 7 4
      app/auth.py
  3. 5 3
      app/docx.py
  4. 3 2
      app/msg.py
  5. 3 2
      app/tool.py

+ 3 - 2
app/archive.py

@@ -1,4 +1,4 @@
-from flask import Blueprint, render_template, redirect, url_for, flash
+from flask import Blueprint, render_template, redirect, url_for, flash, g
 from flask_login import login_required, current_user
 from flask_wtf import FlaskForm
 from wtforms import StringField, SubmitField
@@ -30,7 +30,8 @@ def archive_page():
 @login_required
 @app.form_required(CreateArchiveForm, "create archive")
 @app.role_required("WriteBlog", "create archive")
-def create_archive_page(form: CreateArchiveForm):
+def create_archive_page():
+    form: CreateArchiveForm = g.form
     name = form.name.data
     describe = form.describe.data
     if len(name) > 10:

+ 7 - 4
app/auth.py

@@ -1,4 +1,4 @@
-from flask import Blueprint, render_template, redirect, flash, url_for, request, abort, current_app
+from flask import Blueprint, render_template, redirect, flash, url_for, request, abort, current_app, g
 from flask_login import login_required, login_user, current_user, logout_user
 from flask_wtf import FlaskForm
 from wtforms import StringField, PasswordField, BooleanField, SelectMultipleField, SelectField, SubmitField, ValidationError
@@ -233,7 +233,8 @@ def role_page():
 @login_required
 @app.form_required(CreateRoleForm, "create role")
 @app.role_required("ConfigureSystem", "create role")
-def role_create_page(form: CreateRoleForm):
+def role_create_page():
+    form: CreateRoleForm = g.form
     name = form.name.data
     if len(name) > 10:
         flash("角色名字太长")
@@ -251,7 +252,8 @@ def role_create_page(form: CreateRoleForm):
 @login_required
 @app.form_required(DeleteRoleForm, "delete role")
 @app.role_required("ConfigureSystem", "delete role")
-def role_delete_page(form: DeleteRoleForm):
+def role_delete_page():
+    form: DeleteRoleForm = g.form
     if User.delete_role(form.name.data):
         app.HBlogFlask.print_sys_opt_success_log(f"Delete role success: {form.name.data}")
         flash("角色删除成功")
@@ -265,7 +267,8 @@ def role_delete_page(form: DeleteRoleForm):
 @login_required
 @app.form_required(SetRoleForm, "assign user a role")
 @app.role_required("ConfigureSystem", "assign user a role")
-def role_set_page(form: SetRoleForm):
+def role_set_page():
+    form: SetRoleForm = g.form
     user = load_user_by_email(form.email.data)
     if user is not None:
         if user.set_user_role(form.name.data):

+ 5 - 3
app/docx.py

@@ -1,4 +1,4 @@
-from flask import Blueprint, render_template, abort, redirect, url_for, flash, make_response
+from flask import Blueprint, render_template, abort, redirect, url_for, flash, make_response, g
 from flask_wtf import FlaskForm
 from flask_login import login_required, current_user
 from wtforms import TextAreaField, StringField, SelectMultipleField, SubmitField
@@ -103,7 +103,8 @@ def article_down_page(blog_id: int):
 @login_required
 @app.form_required(WriteCommentForm, "write comment")
 @app.role_required("WriteComment", "write comment")
-def comment_page(blog: int, form: WriteCommentForm):
+def comment_page(blog: int):
+    form: WriteCommentForm = g.form
     context = form.context.data
     if Comment(None, blog, current_user, context).create():
         app.HBlogFlask.print_user_opt_success_log("comment")
@@ -118,7 +119,8 @@ def comment_page(blog: int, form: WriteCommentForm):
 @login_required
 @app.form_required(WriteBlogForm, "write blog")
 @app.role_required("WriteBlog", "write blog")
-def create_docx_page(form: WriteBlogForm):
+def create_docx_page():
+    form: WriteBlogForm = g.form
     title = form.title.data
     if len(title) > 10:
         flash("标题太长了")

+ 3 - 2
app/msg.py

@@ -1,4 +1,4 @@
-from flask import Blueprint, render_template, abort, redirect, url_for, flash
+from flask import Blueprint, render_template, abort, redirect, url_for, flash, g
 from flask_wtf import FlaskForm
 from flask_login import login_required, current_user
 from wtforms import TextAreaField, BooleanField, SubmitField
@@ -45,7 +45,8 @@ def msg_page(page: int = 1):
 @login_required
 @app.form_required(WriteForm, "write msg")
 @app.role_required("WriteMsg", "write msg")
-def write_msg_page(form: WriteForm):
+def write_msg_page():
+    form: WriteForm = g.form
     context = form.context.data
     secret = form.secret.data
     if Message(None, current_user, context, secret, None).create():

+ 3 - 2
app/tool.py

@@ -1,5 +1,5 @@
 from functools import wraps
-from flask import abort
+from flask import abort, g
 from flask_login import current_user
 from flask_wtf import FlaskForm
 from typing import ClassVar
@@ -26,6 +26,7 @@ def form_required(form: ClassVar[FlaskForm], opt: str):
             if not f.validate_on_submit():
                 app.HBlogFlask.print_form_error_log(opt)
                 return abort(404)
-            return func(*args, **kwargs, form=f)
+            g.form = f
+            return func(*args, **kwargs)
         return new_func
     return required