You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask短链接应用访问次数统计方法及AttributeError报错解决

Flask短链接访问次数统计及报错修复

错误原因

你写的代码逻辑顺序有误——先执行了link.access_counter+=1更新操作,再判断link是否存在。当用户输入的short_id无效时,ShortUrls.query.filter_by(...).first()会返回None,此时调用link.access_counter必然触发AttributeError: 'NoneType' object has no attribute 'access_counter'。

修复后的代码

调整逻辑顺序,先判断链接是否存在,仅当存在时再更新访问计数器:

@app.route('/<short_id>')
def redirect_url(short_id):
    link = ShortUrls.query.filter_by(short_id=short_id).first()

    if link:
        # 链接有效时更新访问次数
        link.access_counter += 1  
        db.session.commit()
        return redirect(link.original_url)
    else:
        flash('Invalid URL')
        return redirect(url_for('index'))

额外注意事项

  • 确保你的ShortUrls模型已正确定义access_counter字段,并设置默认值避免初始值为None:
    class ShortUrls(db.Model):
        # 其他字段定义...
        access_counter = db.Column(db.Integer, default=0, nullable=False)
    
  • 如果数据库表已提前创建,需要通过Flask-Migrate等迁移工具添加该字段,或手动修改数据库表结构。

内容的提问来源于stack exchange,提问作者Zura Begadze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:18:13