为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法删除此代码中的未定义错误?

有没有办法删除此代码中的未定义错误?

MYYA 2022-08-02 18:24:45
我试图显示从twitter到我的网页的最热门主题的结果,但是当我运行应用程序时,它会返回jinja2.exceptions.UndefinedError:“趋势”未定义。我怀疑我没有使用尝试/除了它应该如何。@app.route('/')def index():    try:        location = request.args.get('location')        loc_id = client.fetch_woeid(str(location))        trends = api.trends_place(int(loc_id))        return render_template('index.html',trends=trends)    except tweepy.error.TweepError:        return render_template('index.html')我还认为我的模板代码中存在问题。<div class="column">        <form  method="GET" action="{{url_for('index')}}">            <div class="form-group">                <p>See whats tending in your area.</p>                <label for="">Enter location name</label>                <input type="text" name="location" class="form-control" id="exampleInput" placeholder="example london " required>                <input type="submit" value="Search" class="btn btn-primary">            </div>        </form>    </div>    <div class="column">        <h4>Top Trending</h4>        <ul class="list-group">            {% for trend in trends[0]["trends"]%}                <a class="list-group-item list-group-item-action" href="{{trend.url}}">{{trend.name}}</a>            {% endfor %}          </ul>    </div>
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

最好像这样重新组织事物,在没有输入位置时不查询事物,如果未设置位置,则不尝试访问:trends


@app.route("/")

def index():

    location = request.args.get("location")

    trends = None

    if location:  # Only query if there is a location

        loc_id = client.fetch_woeid(str(location))

        trends = api.trends_place(int(loc_id))

        # the above will throw an error if the place is invalid, that's fine

    return render_template("index.html", trends=trends, location=location)


<div class="column">

    <form method="GET">

        <div class="form-group">

            <p>See whats trending in your area.</p>

            <label for="">Enter location name</label>

            <input type="text" name="location" value="{{ location|default("") }}" class="form-control" id="exampleInput" placeholder="example london " required>

            <input type="submit" value="Search" class="btn btn-primary">

        </div>

    </form>

</div>



<div class="column">

    {% if trends %}

    <h4>Top Trending</h4>

    <ul class="list-group">

        {% for trend in trends[0]["trends"]%}

            <a class="list-group-item list-group-item-action" href="{{trend.url}}">{{trend.name}}</a>

        {% endfor %}

      </ul>

    {% endif %}

</div>


查看完整回答
反对 回复 2022-08-02
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

if 是升高的,则在渲染此行时留下未定义状态。tweepy.error.TweepErrorreturn render_template('index.html')trends{% for trend in trends[0]["trends"]%}


你应该改变


return render_template('index.html')


return render_template('index.html', trends=None)

然后检查是否在模板中传递:trends


<div class="column">

    <h4>Top Trending</h4>

    <ul class="list-group">

        {% if trends is not None %}

            {% for trend in trends[0]["trends"]%}

                <a class="list-group-item list-group-item-action" href="{{trend.url}}">{{trend.name}}</a>

            {% endfor %}

        {% endif %}

    </ul>

</div>


查看完整回答
反对 回复 2022-08-02
  • 2 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信