Flask后台管理


管理后台主頁

需求

  • 為后台主頁提供專門的視圖函數
  • 需要帶入當前管理員用戶相關信息以便在界面進行展示

代碼實現

  • 在 modules/admin/views.py 文件中添加視圖函數
@admin_blu.route('/index') @user_login_data def admin_index(): user = g.user return render_template('admin/index.html', user=user.to_dict()) 
  • admin/index.html 模板內容填充

<div class="user_info"> <img src="../../static/admin/images/person.png" alt="{{ user.nick_name }}"> <p>歡迎你 <em>{{ user.nick_name }}</em></p> </div> 

訪問測試

  • 完善登錄視圖函數跳轉界面邏輯
@admin_blu.route('/login', methods=["GET", "POST"]) def admin_login(): ... # 跳轉到后台管理主頁 return redirect(url_for('admin.admin_index')) 
  • 完善如果已登錄的管理員用戶訪問登錄頁面直接跳轉到主頁邏輯
def admin_login(): if request.method == "GET": # 去 session 中取指定的值 user_id = session.get("user_id", None) is_admin = session.get("is_admin", False) # 如果用戶id存在,並且是管理員,那么直接跳轉管理后台主頁 if user_id and is_admin: return redirect(url_for('admin.admin_index')) return render_template('admin/login.html') ... 

問題:在當前代碼邏輯下,如果一個普通用戶直接訪問管理后台的主頁,或者訪問后續實現的視圖函數路由,是直接可以進入的,如何解決?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM