Flask-SQLAlchemy Проверить, существует ли строка - PullRequest
0 голосов
/ 08 ноября 2018

Я уже посмотрел на этот ТАК вопрос, пока он не помог.

Поэтому я пытаюсь проверить, существует ли строка в таблице с Flask-SQLAlchemy, и пока ничего не помогло.

Мой текущий код:

@app.route('/guilds/<guildid>')
def guildsettings(guildid):
    discord = make_session(token=session.get('oauth2_token'))
    user = discord.get(API_BASE_URL + '/users/@me').json()
    guilds = discord.get(API_BASE_URL + '/users/@me/guilds').json()
    row = Settings.query.all()
    exists = Settings.query.filter_by(db.exists().where(Settings.guildid==guildid)).scalar()
    print(exists)
    if exists == True:
        info = Settings.query.filter_by(guildid=guildid).first()
        return render_template("guild.html", id=guildid, guilds=guilds, User=user, prefix=info.prefix, logschannel=info.logschannel, modrole=info.modrole, adminrole=info.adminrole, welcomechannel=info.welcomechannel, welcomemessage=info.welcomemessage, dadbot=info.dadbot, music=info.music, funcmds=info.funcmds, weather=info.weather, wapikey=info.wapikey)
    else:
        return render_template("notinserver.html", guildid=guildid, link="https://discordapp.com/api/oauth2/authorize?client_id=xxxxxx&permissions=8&redirect_uri=xxxxxxx%2Fme&scope=bot&guild_id={}".format(guildid))

Я не уверен, что делать сейчас. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 08 ноября 2018

Если это должен быть точно один результат:

try:
    Settings.query.filter_by(db.exists().where(Settings.guildid==guildid)).one()
except sqlalchemy.orm.exc.NoResultFound:
    return False
except sqlalchemy.orm.exc.MultipleResultsFound:
    #do what ever you want to do if there is more than one result
return True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...