【问题标题】:Takes last 20 record and show last register获取最后 20 条记录并显示最后一个寄存器
【发布时间】:2018-03-10 19:31:55
【问题描述】:

所以我有一个问题,我不知道如何寻找他。

@app.route('/',methods=['GET', 'POST'])
def index():
    if current_user.is_authenticated:
        current_user.update_on = datetime.utcnow()
        db.session.add(current_user)
        db.session.commit()
    username = db.session.query(User.username,User.avatar).order_by(User.username,User.avatar).limit(20).all()
    nicks = [x[0]for x in username]
    base = 'http://localhost:5000/profil'
    urls = ['{}/{}'.format(base,n)for n in nicks]
    return render_template("index.html",user = username,urls=urls,nicks=nicks)

这是我在 app.py 中的代码,所以我想从 mysql 中获取最后 20 条记录,并在 html 中显示最后一条记录。最后一个注册用户将首先显示,而 prelast 是第二个......但在 html 中显示随机用户。
我的HTML 文件:

<a href="{{urls[0] }}"><img class="img-responsive" src="{{url_for('static',filename='upload/'+ user[0].avatar|resize('40x40'))}}" alt="{{nicks[0]}}"></a>
        <a href="{{urls[1] }}"><img class="img-responsive" src="{{url_for('static',filename='upload/'+ user[1].avatar|resize('40x40'))}}" alt="{{nicks[1]}}"></a>
        <a href="{{urls[2] }}"><img class="img-responsive" src="{{url_for('static',filename='upload/'+ user[2].avatar|resize('40x40'))}}" alt="{{nicks[2]}}"></a>

我不知道如何修复这个错误,有人可以帮助我吗?或者只是给我一个提示?我上周开始学习编程

sqlalchemy.exc.OperationalError (2013, 'Lost connection to MySQL server during query') 的另一个问题是快速结束连接,比如 2 分钟,然后看到错误

DATABASE_URI = 'mysql://{}:{}@{}:{}/kamilos98'.format(config['user'], config['password'],config['host'], config['port'])
app.config['SQLALCHEMY_DATABASE_URI'] = DATABASE_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

【问题讨论】:

    标签: python flask flask-sqlalchemy flask-mysql


    【解决方案1】:

    这个:

    username = db.session.query( \
        User.username,User.avatar).order_by(User.username,User.avatar).limit(20).all()
    

    按用户名和头像排序。将其更改为:

    username = db.session.query( \
        User.username,User.avatar).order_by(User.update_on.desc(),User.username).limit(20).all()
    

    改为按上次更新时间排序。

    【讨论】:

    • 你能告诉我为什么 order_by 是 User.update_on 吗?此列用于显示用户最后一次出现在网站上的时间
    • @Tshibe Then order_by(User.created.desc(), ...) - 将 created 替换为包含“在 xx.xx.xxxx 日期注册”日期的列。
    • 我就像你在上面说的那样做,但还是不行,给我一个随机用户
    • 好吧,现在它的工作,只是忘记 .desc() 但是如果你能帮助我“在查询期间丢失与 MySQL 服务器的连接”,它可以快速连接
    猜你喜欢
    • 1970-01-01
    • 2015-01-29
    • 2012-05-10
    • 2018-06-03
    • 2012-02-13
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多