【问题标题】:Does flask-admin import html templates on runtime?flask-admin 是否在运行时导入 html 模板?
【发布时间】:2015-10-26 12:11:46
【问题描述】:

我正在学习烧瓶框架和 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 页面,其中包含一个包含我在脚本中插入的值的表格。 那么这个页面究竟是如何加载的呢?

【问题讨论】:

    标签: python jinja2 flask-sqlalchemy flask-admin


    【解决方案1】:

    您需要进入源代码以查看发生了什么。 ModelView 类继承自 BaseModelView,它指定了specific templates to render for certain views。默认的 bootstrap2 模板位于 here。通过/admin/user/ 调用的路由是here。你会看到它渲染了self.list_template

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2019-05-22
      相关资源
      最近更新 更多