flask返回值到页面问题

1、定义的路由

@main.route('/qqsql',methods=['GET','POST'])
def qqsql():
    cmdsql = None

    commandform = CommandForm()
    serverlists = GameServer.query.all()
    if commandform.validate_on_submit():
        # global dbname
        session['cmdsql'] = commandform.command.data
        session['serverID'] = request.form.getlist('dbcheckbox')
        for db in session.get('serverID'):
            dbsql = GameServer.query.filter_by(serverId=db).first()
            dbhost = dbsql.serverHost
            dbname = dbsql.serverName
            session['sqlres'] = runSql(dbhost=dbhost,serverid=db,sql=session.get('cmdsql'))
            print session.get('sqlres')
        return redirect(url_for('main.owsql'))
    return render_template('owsql.html',
                           commandform=commandform,
                           cmdsql=session.get('cmdsql'),
                           serverlists=serverlists,
                           sqlres = session.get('sqlres'),
                           dbname = dbname  <=====问题出现在这里
                           )

注意dbname 的值,现在想把dbname 的值也返回到页面怎么处理?

阅读 4.8k
1 个回答
@main.route('/qqsql', methods=['GET','POST'])
def qqsql():
    cmdsql = None

    commandform = CommandForm()
    serverlists = GameServer.query.all()
    data = {
        "commandform": commandform,
        "serverlists": serverlists
    }
    if commandform.validate_on_submit():
        # global dbname
        session['cmdsql'] = commandform.command.data
        session['serverID'] = request.form.getlist('dbcheckbox')
        for db in session.get('serverID'):
            dbsql = GameServer.query.filter_by(serverId=db).first()
            dbhost = dbsql.serverHost
            dbname = dbsql.serverName
            sqlres = runSql(dbhost=dbhost,serverid=db,sql=session.get('cmdsql'))
            session['sqlres'] = sqlres
            print session.get('sqlres')
            data.update(dbname=dbname, sqlres=sqlres)
        return redirect(url_for('main.owsql'))
    return render_template('owsql.html', **data)

应该只在dbname存在时才向页面传,要不然就然dbname设置一下默认值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题