当前位置: 首页 > 知识库问答 >
问题:

jinja2.exceptions.模板没有找到: /register

桓信鸥
2023-03-14

我得到这个错误,即使我是渲染模板。我还尝试更改函数名。

我认为这是由于烧瓶(错误)造成的

Traceback(最近的调用最后):文件/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/app.py,行2463,在调用返回self.wsgi_app(环境,start_response)文件/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/app.py",行2449,在wsgi_app响应=self.handle_exception(e)文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/app.py",行1866,在handle_exception恢复(exc_type,exc_value,tb)文件"/用户/ayyagari/Documents/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/_compat.py",第39行,在恢复提高价值文件"/用户/ayyagari/Documents/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/app.py",第2446行,在wsgi_app响应=self.full_dispatch_request()文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/app.py",行1951,在full_dispatch_requestrv=self.handle_user_exception(e)文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-packages/flask/app.py",第1820行,在handle_user_exception补给(exc_type,exc_value,tb)文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/_compat.py",第39行,在补给提高值文件"/用户/ayyagari/Documents/DeepNews/web_2/venv/lib/python3.7/site-packages/flask/app.py",行1949,full_dispatch_requestrv=self.dispatch_request()文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/app.py",行1935,dispatch_request返回self.view_functionsrule.endpoint文件"/用户/ayyagari/文档/DeepNews/web_2/网站/main.py",第57行,register_user返回render_template(url_for('main.register_form'))文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/templating.py",第138行,render_templatectx. app.jinja_envget_or_select_template(template_name_or_list),File"/用户/ayyagari/Documents/DeepNews/web_2/venv/lib/python3.7/site-包/jinja2/环境. py",第869行,get_or_select_template返回自己。get_template(template_name_or_list,父,全局)File"/用户/ayyagari/Documents/DeepNews/web_2/venv/lib/python3.7/site-packages/jinja2/environment.py",第830行,get_template返回自己。_load_template(名称,自己。make_globals(全局))文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/jinja2/环境。py",第804行,在_load_template模板=自己。加载器。加载(自己,名称,全局)文件"/Users/ayyagari/Documents/DeepNews/web_2/venv/lib/python3.7/site-packages/jinja2/loaders.py",第113行,在加载源,文件名,更新=自我。get_source(环境,名称)文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/templating. py",第60行,get_source返回自我。_get_source_fast(环境,模板)文件"/用户/ayyagari/文档/DeepNews/web_2/venv/lib/python3.7/site-包/烧瓶/templating. py",第89行,在_get_source_fast提升TemplateNot找到(模板)jinja2.异常。/register


Here is my code 


from flask import (
    Blueprint, redirect, render_template, request, url_for,
    flash)

from website.db import get_db

bp = Blueprint('main', __name__)


@bp.route('/home')
def index():
    return render_template("index.html")


@bp.route('/register')
def register_form():
    return render_template("form.html")


@bp.route('/success')
def success():
    return render_template("response.html")


@bp.route('/register_user', methods=["POST"])
def register_user():
    if request.method == 'POST':
        email_id = request.form['reg-email']
        company = request.form['reg-company']
        type_of_business = request.form['industry_type']
        checkbox = request.form['reg-check']
        db = get_db()
        error = None
        if not email_id:
            error = 'Email ID is required.'
        elif not company:
            error = 'Company is required.'
        elif not type_of_business:
            error = 'Type of Business is required.'
        elif not checkbox:
            error = 'Accept the Terms and Conditions'
        elif db.execute(
                'SELECT id FROM beta_users WHERE email_id = ?', (email_id,)
        ).fetchone() is not None:
            error = 'User {} is already registered.'.format(email_id)

        if error is None:
            db.execute(
                'INSERT INTO beta_users (email_id, company, type_of_org, checkbox) VALUES (?, ?, ?, ?)',
                (email_id, company, type_of_business, checkbox)
            )
            db.commit()
            return redirect(url_for('main.success'))

        flash(error)

    return render_template(url_for('main.register_form'))


@bp.route('/error')
def errors():
    return render_template("404.html")

API还显示了一个500内部服务器错误

共有1个答案

杨慎之
2023-03-14

问题在于:

return render_template(url_for('main.register_form'))

url\u for返回通过Internet访问路由的url,这不是render\u template使用的<代码>渲染模板需要一个html/文本文件。

所以,要么用:

return render_template('register.html')

或者将用户重定向到另一个路由,让其完成工作:

from flask import redirect
...
return redirect(url_for('main.register'))
 类似资料:
  • 我有一个Spring Boot 2.1.6应用程序(Spring 5),我想使用Thymeleaf作为我的模板引擎。我按照在线教程来设置我的项目,视图和控制器,当我想启动它时,我注意到Thymeleaf抱怨说它找不到任何模板: 我想我设置的项目,因为它应该是(至少根据教程和论坛,我可以找到): 我的控制器如下所示: login.html是这样的: 当我打开登录页面时,我得到一个简单的超文本标记语言

  • 问题内容: 我从Flask的Jinja2模板提供动态页面。现在,我在脚本标签内定义客户端模板,例如Jinja2克隆Nunjucks。问题是,客户端模板具有类似语法该Flask’s的 Jinja2的解释,而不是可以解释渲染的逐字。 如何使整个脚本块逐字呈现? 问题答案: 你可以禁用块内标签的解释:

  • 问题内容: 我有一个Flask应用程序,当从flask调用它时,调用时不会出现问题。 我需要相同的方法在flask外部工作 我可以使用,但是我想在两种情况下(flask and command line)都可以使用相同的方法 问题答案: 你需要在应用程序上下文中呈现它。将应用程序导入后端代码,然后执行以下操作。

  • 问题内容: 我正在为Flask和SQLAlchemy构建管理员,并且我想使用来将用于不同输入的HTML传递给我的视图。模板框架似乎会自动转义html,因此所有<“’>都将转换为html实体。如何禁用它以使HTML正确呈现? 问题答案: 理想的方法是 而不是完全关闭自动转义。

  • 问题内容: 我正在为构建管理员,并且我想使用来将用于不同输入的HTML传递给我的视图。模板框架似乎会自动转义,因此所有都将转换为html实体。如何禁用它以使HTML正确呈现? 问题答案: 理想的方法是 而不是完全关闭自动转义。

  • 我有一个rails应用程序,使用angularjs进行客户端开发。我尝试加载位于“app/assets/javascripts/templates/”中的模板: 但是我总是得到一个错误:错误:[$compile: tpload]未能加载模板:/index.html。 我试图将“templates”文件夹从javascripts-app/assets/templates中移出,并通过在config/