как получить значение из URL в колбе - PullRequest
0 голосов
/ 16 февраля 2019

Я разработал веб-приложение с использованием фляги, шаблона jinja и начальной загрузки.Я хочу получить имя пользователя из URL-адреса после входа в систему и показать его на панели инструментов.После входа в систему показывается имя.Но когда я нажимаю на панель инструментов, она показывает «нет», потому что имя удаляется из URL.Если есть какое-то решение, скажите мне.Это будет очень полезно.Заранее спасибо.Коды приведены ниже.

app.py

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    name=form.name.data

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user:
            if user.password == form.password.data:
                login_user(user, remember=form.remember.data)
                session['logged_in'] = True
                return redirect(url_for('dashboard', name=name))

        return '<h1>Invalid username or password</h1>'
        #return '<h1>' + form.username.data + ' ' + form.password.data + '</h1>'

    return render_template('login.html', form=form)

@app.route('/dashboard', methods=['GET', 'POST'])
@login_required
def dashboard():
    name=request.args.get('name')
    return render_template('dashboard.html',name=name)

dashboard.html

<section id="home" style="background: url('../static/images/rate25.jpg');background-attachment: fixed;background-size: cover;background-repeat: no-repeat;background-position: center;">
        <div class="container-fluid con" align="center">
            <div class="row" align="center">
                <div class="col-sm-2"></div>
                <div class="col-sm-8">
                <h1 class="h1" style="font-weight: 500;text-transform: unset;">Hi {{name}}, Welcome to Ratingspro</h1></div>
               <div class="col-sm-2"></div>

            </div>
        </div>
</section>

После входа в систему я получаю это dashboard

После нажатия на панель инструментов в навигационной панели я получаю это enter image description here

1 Ответ

0 голосов
/ 17 февраля 2019

Что вы получите в консоли, если вы измените код следующим образом:

@app.route('/dashboard', methods=['GET', 'POST'])
@login_required
def dashboard():
    name=request.args.get('name')
    print('name: {}'.format(name)) 
    return render_template('dashboard.html',name=name)

Если вы ничего не получите, это означает, что имя не передается через 'args'.Он может быть передан другим методом, таким как request.data, request.json, request.form

...