소스 검색

refactor: 优化路由

SongZihuan 3 년 전
부모
커밋
f75b923e46
11개의 변경된 파일71개의 추가작업 그리고 60개의 파일을 삭제
  1. 1 1
      app/app.py
  2. 5 4
      app/archive.py
  3. 10 10
      app/auth.py
  4. 37 29
      app/docx.py
  5. 1 1
      app/index.py
  6. 7 5
      app/msg.py
  7. 1 1
      templates/archive/archive.html
  8. 3 3
      templates/docx/article.html
  9. 3 3
      templates/docx/docx.html
  10. 2 2
      templates/index/index.html
  11. 1 1
      templates/msg/msg.html

+ 1 - 1
app/app.py

@@ -34,7 +34,7 @@ class HBlogFlask(Flask):
         self.register_blueprint(docx, url_prefix="/docx")
         self.register_blueprint(msg, url_prefix="/msg")
         self.register_blueprint(auth, url_prefix="/auth")
-        self.register_blueprint(about_me, url_prefix="/about-me")
+        self.register_blueprint(about_me, url_prefix="/about")
         self.register_blueprint(oss, url_prefix="/oss")
 
         self.login_manager = LoginManager()

+ 5 - 4
app/archive.py

@@ -1,4 +1,4 @@
-from flask import Blueprint, render_template, redirect, url_for, flash, g
+from flask import Blueprint, render_template, redirect, url_for, flash, g, request
 from flask_login import login_required, current_user
 from flask_wtf import FlaskForm
 from wtforms import StringField, TextAreaField, SubmitField
@@ -40,7 +40,7 @@ def archive_page():
     return __load_archive_page(CreateArchiveForm())
 
 
-@archive.route("create", methods=["POST"])
+@archive.route("/create", methods=["POST"])
 @login_required
 @app.form_required(CreateArchiveForm, "create archive", __load_archive_page)
 @app.role_required("WriteBlog", "create archive")
@@ -57,10 +57,11 @@ def create_archive_page():
     return redirect(url_for("archive.archive_page"))
 
 
-@archive.route("delete/<int:archive_id>")
+@archive.route("/delete")
 @login_required
 @app.role_required("DeleteBlog", "delete archive")
-def delete_archive_page(archive_id: int):
+def delete_archive_page():
+    archive_id = int(request.args.get("archive", 1))
     if Archive(None, None, archive_id).delete():
         app.HBlogFlask.print_sys_opt_success_log(f"Delete archive {archive_id}")
         flash("归档删除成功")

+ 10 - 10
app/auth.py

@@ -128,7 +128,7 @@ class SetRoleForm(RoleForm):
             raise ValidationError("邮箱用户不存在")
 
 
-@auth.route('/yours')
+@auth.route('/user/yours')
 @login_required
 def yours_page():
     msg_count, comment_count, blog_count = current_user.count_info()
@@ -136,7 +136,7 @@ def yours_page():
     return render_template("auth/yours.html", msg_count=msg_count, comment_count=comment_count, blog_count=blog_count)
 
 
-@auth.route('/login', methods=["GET", "POST"])
+@auth.route('/user/login', methods=["GET", "POST"])
 def login_page():
     if current_user.is_authenticated:
         app.HBlogFlask.print_user_not_allow_opt_log("login")
@@ -160,7 +160,7 @@ def login_page():
     return render_template("auth/login.html", form=form)
 
 
-@auth.route('/register', methods=["GET", "POST"])
+@auth.route('/user/register', methods=["GET", "POST"])
 def register_page():
     if current_user.is_authenticated:
         app.HBlogFlask.print_user_not_allow_opt_log("register")
@@ -179,7 +179,7 @@ def register_page():
     return render_template("auth/register.html", RegisterForm=form)
 
 
-@auth.route('/confirm')
+@auth.route('/user/confirm')
 def confirm_page():
     token = request.args.get("token", None)
     if token is None:
@@ -205,7 +205,7 @@ def confirm_page():
     return redirect(url_for("base.index_page"))
 
 
-@auth.route('/logout')
+@auth.route('/user/logout')
 @login_required
 def logout_page():
     app.HBlogFlask.print_import_user_opt_success_log(f"logout")
@@ -214,7 +214,7 @@ def logout_page():
     return redirect(url_for("base.index_page"))
 
 
-@auth.route('/passwd', methods=['GET', 'POST'])
+@auth.route('/user/set/passwd', methods=['GET', 'POST'])
 @login_required
 def change_passwd_page():
     form = ChangePasswdForm()
@@ -230,7 +230,7 @@ def change_passwd_page():
     return render_template("auth/passwd.html", ChangePasswdForm=form)
 
 
-@auth.route('/delete', methods=['GET', 'POST'])
+@auth.route('/user/delete', methods=['GET', 'POST'])
 @login_required
 @app.role_required("DeleteUser", "delete user")
 def delete_user_page():
@@ -259,7 +259,7 @@ def role_page():
                            SetRoleForm=SetRoleForm())
 
 
-@auth.route('/role-create', methods=['POST'])
+@auth.route('/role/create', methods=['POST'])
 @login_required
 @app.form_required(CreateRoleForm, "create role")
 @app.role_required("ConfigureSystem", "create role")
@@ -275,7 +275,7 @@ def role_create_page():
     return redirect(url_for("auth.role_page"))
 
 
-@auth.route('/role-delete', methods=['POST'])
+@auth.route('/role/delete', methods=['POST'])
 @login_required
 @app.form_required(DeleteRoleForm, "delete role")
 @app.role_required("ConfigureSystem", "delete role")
@@ -290,7 +290,7 @@ def role_delete_page():
     return redirect(url_for("auth.role_page"))
 
 
-@auth.route('/role-set', methods=['POST'])
+@auth.route('/role/set', methods=['POST'])
 @login_required
 @app.form_required(SetRoleForm, "assign user a role")
 @app.role_required("ConfigureSystem", "assign user a role")

+ 37 - 29
app/docx.py

@@ -71,13 +71,16 @@ def __load_docx_page(page: int, form: WriteBlogForm):
                            show_delete=current_user.check_role("DeleteBlog"))
 
 
-@docx.route('/<int:page>')
-def docx_page(page: int = 1):
+@docx.route('/')
+def docx_page():
+    page = int(request.args.get("page", 1))
     return __load_docx_page(page, WriteBlogForm())
 
 
-@docx.route('/<int:archive>/<int:page>')
-def archive_page(archive: int, page: int = 1):
+@docx.route('/archive')
+def archive_page():
+    page = int(request.args.get("page", 1))
+    archive = int(request.args.get("archive", 1))
     if page < 1:
         app.HBlogFlask.print_user_opt_fail_log(f"Load archive-docx list with error page({page}) archive: {archive}")
         abort(404)
@@ -109,13 +112,15 @@ def __load_article_page(blog_id: int, form: WriteCommentForm):
                            show_email=current_user.check_role("ReadUserInfo"))
 
 
-@docx.route('/article/<int:blog_id>')
-def article_page(blog_id: int):
+@docx.route('/article')
+def article_page():
+    blog_id = int(request.args.get("blog", 1))
     return __load_article_page(blog_id, WriteCommentForm())
 
 
-@docx.route('/down/<int:blog_id>')
-def article_down_page(blog_id: int):
+@docx.route('/article/download')
+def article_down_page():
+    blog_id = int(request.args.get("blog", 1))
     article = load_blog_by_id(blog_id)
     if article is None:
         app.HBlogFlask.print_user_opt_fail_log(f"Download article with error id({blog_id})")
@@ -128,23 +133,7 @@ def article_down_page(blog_id: int):
     return response
 
 
-@docx.route('/comment/<int:blog_id>', methods=["POST"])
-@login_required
-@app.form_required(WriteCommentForm, "write comment", __load_article_page)
-@app.role_required("WriteComment", "write comment")
-def comment_page(blog_id: int):
-    form: WriteCommentForm = g.form
-    context = form.context.data
-    if Comment(None, blog_id, current_user, context).create():
-        app.HBlogFlask.print_user_opt_success_log("comment")
-        flash("评论成功")
-    else:
-        app.HBlogFlask.print_user_opt_error_log("comment")
-        flash("评论失败")
-    return redirect(url_for("docx.article_page", blog_id=blog_id))
-
-
-@docx.route('/create-docx', methods=["POST"])
+@docx.route('/article/create', methods=["POST"])
 @login_required
 @app.form_required(WriteBlogForm, "write blog", lambda form: __load_docx_page(int(request.args.get("page", 1)), form))
 @app.role_required("WriteBlog", "write blog")
@@ -168,10 +157,11 @@ def create_docx_page():
     return redirect(url_for("docx.docx_page", page=1))
 
 
-@docx.route("delete/<int:blog_id>")
+@docx.route("/article/delete")
 @login_required
 @app.role_required("DeleteBlog", "delete blog")
-def delete_blog_page(blog_id: int):
+def delete_blog_page():
+    blog_id = int(request.args.get("blog", 1))
     if BlogArticle(blog_id, None, None, None, None).delete():
         app.HBlogFlask.print_sys_opt_success_log("delete blog")
         flash("博文删除成功")
@@ -181,10 +171,28 @@ def delete_blog_page(blog_id: int):
     return redirect(url_for("docx.docx_page", page=1))
 
 
-@docx.route("delete_comment/<int:comment_id>")
+@docx.route('/comment/create', methods=["POST"])
+@login_required
+@app.form_required(WriteCommentForm, "write comment", __load_article_page)
+@app.role_required("WriteComment", "write comment")
+def comment_page():
+    blog_id = int(request.args.get("blog", 1))
+    form: WriteCommentForm = g.form
+    context = form.context.data
+    if Comment(None, blog_id, current_user, context).create():
+        app.HBlogFlask.print_user_opt_success_log("comment")
+        flash("评论成功")
+    else:
+        app.HBlogFlask.print_user_opt_error_log("comment")
+        flash("评论失败")
+    return redirect(url_for("docx.article_page", blog=blog_id))
+
+
+@docx.route("/comment/delete")
 @login_required
 @app.role_required("DeleteComment", "delete comment")
-def delete_comment_page(comment_id: int):
+def delete_comment_page():
+    comment_id = int(request.args.get("comment", 1))
     if Comment(comment_id, None, None, None).delete():
         app.HBlogFlask.print_sys_opt_success_log("delete comment")
         flash("博文评论成功")

+ 1 - 1
app/index.py

@@ -15,7 +15,7 @@ def hello_page():
     return render_template("index/hello.html")
 
 
-@index.route('/index')
+@index.route('/home')
 def index_page():
     blog_list = BlogArticle.get_blog_list(limit=5, offset=0, not_top=True)
     msg_list = load_message_list(limit=6, offset=0, show_secret=False)

+ 7 - 5
app/msg.py

@@ -44,12 +44,13 @@ def __load_msg_page(page: int, form: WriteForm):
                            show_email=current_user.check_role("ReadUserInfo"))
 
 
-@msg.route('/<int:page>')
-def msg_page(page: int = 1):
+@msg.route('/')
+def msg_page():
+    page = int(request.args.get("page", 1))
     return __load_msg_page(page, WriteForm())
 
 
-@msg.route('/write', methods=["POST"])
+@msg.route('/create', methods=["POST"])
 @login_required
 @app.form_required(WriteForm, "write msg", lambda form: __load_msg_page(int(request.args.get("page", 1)), form))
 @app.role_required("WriteMsg", "write msg")
@@ -66,10 +67,11 @@ def write_msg_page():
     return redirect(url_for("msg.msg_page", page=1))
 
 
-@msg.route('/delete/<int:msg_id>')
+@msg.route('/delete')
 @login_required
 @app.role_required("DeleteMsg", "delete msg")
-def delete_msg_page(msg_id: int):
+def delete_msg_page():
+    msg_id = int(request.args.get("msg", 1))
     if Message(msg_id, None, None).delete():
         app.HBlogFlask.print_user_opt_success_log("delete msg")
         flash("留言删除成功")

+ 1 - 1
templates/archive/archive.html

@@ -66,7 +66,7 @@
                                 </div>
                                 <div class="modal-footer">
                                     <a class="btn btn-danger"
-                                       href="{{ url_for("archive.delete_archive_page", archive_id=archive[0]) }}"> 删除 </a>
+                                       href="{{ url_for("archive.delete_archive_page", archive=archive[0]) }}"> 删除 </a>
                                     <button type="button" class="btn btn-outline-dark" data-dismiss="modal"> 取消 </button>
                                 </div>
                             </div>

+ 3 - 3
templates/docx/article.html

@@ -18,7 +18,7 @@
                     {% for archive in article.archive %}
                         <span class="badge badge-info"> {{ archive.name }} </span>
                     {% endfor %}
-                    <a href="{{ url_for('docx.article_down_page', blog_id=article.blog_id) }}"> 下载 </a>
+                    <a href="{{ url_for('docx.article_down_page', blog=article.blog_id) }}"> 下载 </a>
                     <hr>
 
                     <div id="markdown-view">
@@ -35,7 +35,7 @@
                     <h1 class="mt-3"> 评论 </h1>
 
                     <section class="col-12 text-right">
-                        <form action="{{ url_for('docx.comment_page', blog_id=article.blog_id) }}" method="post">
+                        <form action="{{ url_for('docx.comment_page', blog=article.blog_id) }}" method="post">
                             {{ form.hidden_tag() }}
                             {{ form.context(class="form-control mb-2", rows="3") }}
                             {% for error in form.context.errors %}
@@ -78,7 +78,7 @@
                                         </div>
                                         <div class="modal-footer">
                                             <a class="btn btn-danger"
-                                               href="{{ url_for("docx.delete_comment_page", comment_id=comment.comment_id) }}"> 删除 </a>
+                                               href="{{ url_for("docx.delete_comment_page", comment=comment.comment_id) }}"> 删除 </a>
                                             <button type="button" class="btn btn-outline-dark" data-dismiss="modal"> 取消 </button>
                                         </div>
                                     </div>

+ 3 - 3
templates/docx/docx.html

@@ -72,7 +72,7 @@
                                     </div>
                                     <div class="modal-footer">
                                         <a class="btn btn-danger"
-                                           href="{{ url_for("docx.delete_blog_page", blog_id=blog[0]) }}"> 删除 </a>
+                                           href="{{ url_for("docx.delete_blog_page", blog=blog[0]) }}"> 删除 </a>
                                         <button type="button" class="btn btn-outline-dark" data-dismiss="modal"> 取消 </button>
                                     </div>
                                 </div>
@@ -86,7 +86,7 @@
                                 <button type="button" class="btn btn-danger ml-2"
                                     data-toggle="modal" data-target="#DeleteModal{{blog[0]}}"> &times; </button>
                             {% endif %}
-                            <a class="h4" href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
+                            <a class="h4" href="{{ url_for("docx.article_page", blog=blog[0]) }}">
                             {{ blog[1] }}
                                 <small> {{ blog[2] }}
                                     <small> {{ blog[3] }} </small> </small> </a></div>
@@ -96,7 +96,7 @@
                                 <button type="button" class="btn btn-danger ml-2"
                                     data-toggle="modal" data-target="#DeleteModal{{blog[0]}}"> &times; </button>
                             {% endif %}
-                            <a class="h4" href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
+                            <a class="h4" href="{{ url_for("docx.article_page", blog=blog[0]) }}">
                             {{ blog[1] }}
                                 <small> {{ blog[2] }}
                                     <small> {{ blog[3] }} </small> </small> </a></div>

+ 2 - 2
templates/index/index.html

@@ -29,7 +29,7 @@
                     <article class="col-12 col-lg-8">
                     {% for blog in blog_list %}
                         <div class="docx ml-lg-2"> <a class="h4"
-                                                      href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
+                                                      href="{{ url_for("docx.article_page", blog=blog[0]) }}">
                             {{ blog[1] }}
                                 <small> {{ blog[2] }}
                                     <small> {{ blog[3] }} </small> </small> </a></div>
@@ -39,7 +39,7 @@
                     <article class="col-12">
                     {% for blog in blog_list %}
                         <div class="docx"> <a class="h4"
-                                              href="{{ url_for("docx.article_page", blog_id=blog[0]) }}">
+                                              href="{{ url_for("docx.article_page", blog=blog[0]) }}">
                             {{ blog[1] }}
                                 <small> {{ blog[2] }}
                                     <small> {{ blog[3] }} </small> </small> </a></div>

+ 1 - 1
templates/msg/msg.html

@@ -58,7 +58,7 @@
                                             </div>
                                             <div class="modal-footer">
                                                 <a class="btn btn-danger"
-                                                   href="{{ url_for("msg.delete_msg_page", msg_id=msg.msg_id) }}"> 删除 </a>
+                                                   href="{{ url_for("msg.delete_msg_page", msg=msg.msg_id) }}"> 删除 </a>
                                                 <button type="button" class="btn btn-outline-dark" data-dismiss="modal"> 取消 </button>
                                             </div>
                                         </div>