flask-admin 是否在运行时导入 html 模板?
Does flask-admin import html templates on runtime?
我正在学习 flask 框架和 SQLAlchemy。
我 运行 这个测试脚本在 docker 容器上,没有为 html 页面创建我应该做的或至少是文档所说的任何模板。
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqla import ModelView
app = Flask(__name__)
db = SQLAlchemy(app)
db_uri = 'mysql://{u}:{p}@{h}/{s}?charset=utf8&use_unicode=1'
app.config['SQLALCHEMY_DATABASE_URI'] = db_uri.format(u='root',
p='matching',
h='127.0.0.1',
s='master_v2')
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)
class UserView(ModelView):
column_list = ('name', 'email')
column_searchable_list = ('name', 'email')
column_filters = ('name', 'email')
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
email = db.Column(db.String(128))
admin = Admin(app)
admin.add_view(UserView(User, db.session))
me = User(name='me', email='me@mail.com')
you = User(name='you', email='you@gmail.com')
db.create_all()
db.session.add(me)
db.session.add(you)
db.session.commit()
app.run()
一旦我转到 http://127.0.0.1:5000/admin/user/,它实际上返回一个 HTML 页面,其中 table 包含我在脚本中插入的值。
那么这个页面是如何准确加载的呢?
您需要进入源代码以查看发生了什么。 ModelView class 继承自 BaseModelView,后者指定 specific templates to render for certain views. The default bootstrap2 templates are at here. The route that is called via /admin/user/
is here。您会看到它呈现 self.list_template
.
我正在学习 flask 框架和 SQLAlchemy。
我 运行 这个测试脚本在 docker 容器上,没有为 html 页面创建我应该做的或至少是文档所说的任何模板。
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqla import ModelView
app = Flask(__name__)
db = SQLAlchemy(app)
db_uri = 'mysql://{u}:{p}@{h}/{s}?charset=utf8&use_unicode=1'
app.config['SQLALCHEMY_DATABASE_URI'] = db_uri.format(u='root',
p='matching',
h='127.0.0.1',
s='master_v2')
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)
class UserView(ModelView):
column_list = ('name', 'email')
column_searchable_list = ('name', 'email')
column_filters = ('name', 'email')
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
email = db.Column(db.String(128))
admin = Admin(app)
admin.add_view(UserView(User, db.session))
me = User(name='me', email='me@mail.com')
you = User(name='you', email='you@gmail.com')
db.create_all()
db.session.add(me)
db.session.add(you)
db.session.commit()
app.run()
一旦我转到 http://127.0.0.1:5000/admin/user/,它实际上返回一个 HTML 页面,其中 table 包含我在脚本中插入的值。 那么这个页面是如何准确加载的呢?
您需要进入源代码以查看发生了什么。 ModelView class 继承自 BaseModelView,后者指定 specific templates to render for certain views. The default bootstrap2 templates are at here. The route that is called via /admin/user/
is here。您会看到它呈现 self.list_template
.