本文简单介绍了一个以Flask-admin作为后台、Flask-BasicAuth作为简单登录方式的例子。主要解决的问题是:仅使用Flask-BasicAuth登录后台,而其他页面不需要登录即可查看

示例代码

准备工作

安装flask/flask-admin/flask-basicauth/SQLAlchemy

$ pip install Flask
$ pip install Flask-Admin
$ pip install Flask-BasicAuth
$ pip install Flask-SQLAlchemy
$ pip install SQLAlchemy

运行项目

在项目根目录下创建app.py文件,把示例代码粘贴过来并运行:

$ python app.py

打开浏览器

无需登录即可访问localhost:8000

index page

打开admin后台

localhost:8000/admin,需要登录:

admin login

输入后台设置的密码usernamepassword,即可登录后台:

admin page

退出登录

打开localhost:8000/logout

log out

注意事项

  • python2和python3版本的代码有所不同,主要是因为super()的用法不同。示例代码已涵盖python2和python3,如需python3,请注释掉python2。
  • Flask-BasicAuth登录方式不安全,建议放在SSL下使用,或使用flask-login或flask-security。
  • 使用wsgi和apache在服务器上运行时,需要在wsgi文件中添加WSGIPassAuthorization On,否则flask-basicauth会被apache忽略从而无法工作。

参考文章