flaskadmin调用html文件,python – Flask-Admin扩展模板

我正在尝试使用Flask-Admin的’master.html’模板扩展我的模板,如下所示:

{% extends 'admin/master.html' %}

{% block body %}

Hello!!!

{% endblock %}

我得到错误:

File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 894, in render

return self.environment.handle_exception(exc_info, True)

File "/Users/Slowpoke/Projects/Python/spider/spider/templates/form.html", line 1, in top-level template code

{% extends 'admin/master.html' %}

File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Flask_Admin-1.0.6-py2.7.egg/flask_admin/templates/admin/master.html", line 1, in top-level template code

{% extends admin_base_template %}

File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Flask-0.9-py2.7.egg/flask/templating.py", line 57, in get_source

return loader.get_source(environment, local_name)

File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/loaders.py", line 162, in get_source

pieces = split_template_path(template)

File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/loaders.py", line 29, in split_template_path

for piece in template.split('/'):

UndefinedError: 'admin_base_template' is undefined

以下是我正在初始化Flask-Admin的方法:

admin = Admin(app, name='Spiders')

admin.add_view(AdminView(User, Session, name='Users'))

和AdminView类:

from flask.ext.admin.contrib.sqlamodel import ModelView

from flask.ext import login

class AdminView(ModelView):

def is_accessible(self):

return login.current_user.is_authenticated()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask中,可以使用模板引擎来渲染动态内容。模板引擎可以将模板文件中的占位符替换为动态内容,其中动态内容可以是Python代码。 下面是一个使用Jinja2模板引擎的示例,展示如何在模板文件中写Python代码: ```html <!DOCTYPE html> <html> <head> <title>Flask Template Example</title> </head> <body> {% for user in users %} <p>{{ user.name }} - {{ user.age }}</p> {% if user.is_admin %} <p>This user is an admin.</p> {% else %} <p>This user is not an admin.</p> {% endif %} {% endfor %} </body> </html> ``` 在上面的代码中,使用了`{% ... %}`标记来表示Python代码块,使用`{{ ... }}`标记来表示要渲染的动态内容。 在Python代码块中,可以使用循环语句、条件语句、变量等来生成动态内容。在模板中使用变量时,变量需要在调用`render_template()`函数时传递给模板。 下面是一个在Flask应用中使用模板引擎的示例代码: ```python from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): users = [ {'name': 'Alice', 'age': 25, 'is_admin': True}, {'name': 'Bob', 'age': 30, 'is_admin': False}, {'name': 'Charlie', 'age': 35, 'is_admin': True}, ] return render_template('index.html', users=users) if __name__ == '__main__': app.run(debug=True) ``` 在上面的代码中,将`users`变量传递给模板模板中可以使用`users`变量来生成动态内容。调用`render_template()`函数时,第一个参数是模板文件名,第二个参数是要传递给模板的变量。 注意:在模板中写Python代码时,要注意代码的安全性。模板中的输入可能来自用户,需要进行适当的过滤和转义,以避免安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值