上次我们学习了如何往数据库里插入数据,显示我们自己的文章。
有些朋友可能会问,django有后台管理,插入不用这么麻烦,那flask有类似的吗?当然有,而且还挺多的。今天我们就用一个最常用的包来完成 flask-admin 。老样子,先把包装上 pip install flask-admin。
今天我们还得来整理下。新建一个config.py,这个文件存放一些配置参数。
import os
from flask_sqlalchemy import SQLAlchemy # 导入扩展类
from flask import Flask
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'blog.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SECRET_KEY'] = "212f^&^$$%%&^^&^*&^^&*^ghffydu"
db = SQLAlchemy(app) # 初始化扩展,传入程序实例 app
没错,app创建以及数据库初始化我们都放在了这里。
接着我们新建一个admin.py,这里就用来添加后台配置吧。代码整上。
from flask_admin import Admin
from config import app
admin = Admin(app, name='博客后台管理系统', template_mode='bootstrap3') # 使用bootstrap3风格
点击运行,打开地址 http://127.0.0.1:5000/admin 。可以看到,后台已经出现了。
接着我们整合model到后台。
from config import app, db
from models import User, Article
from flask_admin.contrib.sqla import ModelView
admin.add_view(ModelView(User, db.session, name='用户管理'))
admin.add_view(ModelView(Article, db.session, name='文章管理'))
再次打开后台,我们发现,这次多了2个选项卡 。我们点击文章管理,可以看到,上次我们添加的数据都展示出来了。
可是字段名都是英文的,我们来让他更友好一点。修改admin.py。
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from config import app, db
from models import User, Article
class UserModelView(ModelView):
column_labels = {
'name': '名字',
}
class ArticleModelView(ModelView):
column_labels = {
'title': '文章标题',
'content': '文章内容',
'user': '作者'
}
admin = Admin(app, name='博客后台管理系统', template_mode='bootstrap3')
admin.add_view(UserModelView(User, db.session, name='用户管理'))
admin.add_view(ArticleModelView(Article, db.session, name='文章管理'))
再次打开,漂亮。这相当于django模型里设置verbose_name。
我们来添加一篇文章,点击Create。
然后点击Save,可以看到文章成功创建。
我们打开首页,不错,更新成功。如果想修改或者删除文章,都可以在后台去操作了,是不是很方便呢?
本次就到这里了,感谢大家,期待下一次吧。