栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

flask官方模板博客实例遇到的问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flask官方模板博客实例遇到的问题

https://dormousehole.readthedocs.io/en/latest/tutorial/index.html

当我创建博客文章时报错

TypeError: 'builtin_function_or_method' object is not subscriptable
TypeError:“内置函数”或“方法”对象不可下标


查看文件

创建文章的代码如下

@bp.route('/create',methods=('GET','POST'))
@login_required
def create():
    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']
        error = None

        if not title:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            db.execute(
                'INSERT INTO post (title,body,author_id)'
                'VALUES(?,?,?)',
                (title,body,g.user['id'])
            )
            db.commit()
            return redirect(url_for('blog.index'))
    return render_template('blog/create.html')
问题原因

/opt/flask-tutorial/flaskr/auth.py

@bp.before_app_request
def load_logged_in_user():
    user_id = session.get('user_id')

    if user_id is None:
        g.user = None
    else:
        g.user = get_db().execute(
            'SELECt * FROM user WHERe id = ?',(user_id,)
        ).fetchone()  #少了小括号

bp.before_app_request() 注册一个 在视图函数之前运行的函数,不论其 URL 是什么。 load_logged_in_user 检查用户 id 是否已经储存在 session 中,并从数据库中获取用户数据,然后储存在 g.user 中。 g.user 的持续时间比请求要长。 如果没有用户 id ,或者 id 不存在,那么 g.user 将会是 None 。

fetchone() 根据查询返回一个记录行。 如果查询没有结果,则返回 None 。后面还用到 fetchall() ,它返回包括所有结果的列表

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445168.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号