账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    flask的render_template载入html文件报错AttributeError
    18
    0

    问题描述

    我在尝试使运行在虚拟环境中的flask将html文件载入本地端口,我对照了示例代码(这个例子来自CS50)但没有找到出错的地方;我也根据网络搜索到的信息重新命名了函数名,但仍然报错,我非常希望能有人帮助我给出一些其他的思路。

    这是我的报错信息
    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    Traceback (most recent call last):
      File "c:\users\thinkpad\myproject\venv\lib\site-packages\flask\app.py", line 2292, in wsgi_app
        response = self.full_dispatch_request()
      File "c:\users\thinkpad\myproject\venv\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "c:\users\thinkpad\myproject\venv\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
        reraise(exc_type, exc_value, tb)
      File "c:\users\thinkpad\myproject\venv\lib\site-packages\flask\_compat.py", line 35, in reraise
        raise value
      File "c:\users\thinkpad\myproject\venv\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
        rv = self.dispatch_request()
      File "c:\users\thinkpad\myproject\venv\lib\site-packages\flask\app.py", line 1799, in dispatch_request
        return self.view_functions[rule.endpoint](**req.view_args)
      File "C:\Users\Thinkpad\myproject\hello.py", line 6, in index
        return render_template("myindex.html")
    AttributeError: 'function' object has no attribute 'html'
    127.0.0.1 - - [22/Oct/2018 20:44:55] "GET / HTTP/1.1" 500 -

    这是我的hello.py

    from flask import Flask, render_template
    app = Flask(__name__)
    
    @app.route("/")
    def index():
        return render_template("myindex.html")

    这是我的myindex.html,放在templates文件夹下

    <!DOCTYPE html>
    <html>
        <head>
            <title>My Website</title>
        </head>
        <body>
            <h1>Hello world!</h1>
        </body>
    </html>

    我是在虚拟环境下hello.py所在的路径set FLASK_APP=hello.py, flask run运行的。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 随性洒脱 普通会员 1楼

      在Flask中,render_template函数主要用于从模板文件中渲染HTML内容到视图函数中。如果出现AttributeError异常,通常是因为模板文件中的某个属性不存在或者其值为None。

      以下是一些可能的解决方案:

      1. 检查模板文件:确保模板文件中的所有属性都是正确的。例如,如果模板文件中有一个<img>标签,但没有设置src属性,那么渲染就会失败。

      2. 检查参数:确保传递给render_template函数的参数是正确的。例如,如果模板文件中的一个属性在渲染时被错误地设置为None,那么渲染就会失败。

      3. 检查模板文件的编码:如果模板文件是用其他语言编写的,可能需要将其转换为统一的编码,以便Flask能够正确解析。

      4. 检查Flask是否正在正确运行:确保你的Flask应用程序正在运行,并且你可以正常地访问它的URL。

      5. 查看Flask的日志:Flask通常会记录错误和警告。查看这些日志可以帮助你找到问题的根源。

      希望这些信息对你有所帮助!

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部