Как отобразить столбец в базе данных в виде флеш-сообщения во флешках - PullRequest
0 голосов
/ 28 сентября 2018

Здравствуйте, у меня есть проверочная система входа в систему, которая проверяет пользователя по базе данных, отправляет почту и смс проверенному пользователю и отображает приветственное сообщение в нижней части страницы входа.Но я хочу, чтобы он отображал флеш-приветствие вместе с именем проверенного пользователя.например, flash ("добро пожаловать" "" + имя).Как мне это сделать?мой код ниже.

def validate3(username, password):
con = sqlite3.connect('static/Users.db')
completion = False
with con:
            cur = con.cursor()
            cur.execute("SELECT * FROM Nbc")
            rows = cur.fetchall()
            for row in rows:
                dbUser = row[0]
                dbPass = row[1]
                dbName = row[2]                    
                dbEmail = row[3]
                dbMessage = row[4]
                if dbPass==password:
                    completion=(dbUser, username)
                    #sending email
                    '''fromaddr = "xxxxxxxxx"
                    toaddr = dbEmail                        
                    message = MIMEMultipart()
                    message['From'] = fromaddr
                    message['To'] = toaddr
                    message['Subject'] = dbName
                    body = dbMessage
                    message.attach(MIMEText(body,'plain'))
                    password = "xxxxxxxxxxxx"
                    server = smtplib.SMTP('smtp.gmail.com:587')                        
                    server.starttls()                        
                    server.login(fromaddr, password)
                    text = message.as_string()
                    server.sendmail(fromaddr, toaddr.split(","), text)
                    server.quit()'''
return completion  



@app.route('/nbc', methods=['GET', 'POST'])
def nbc():

error = None
if request.method == 'POST':
    username = request.form['username']
    password = request.form['password']
    complete = validate3(username, password)
    if complete ==False:
        flash ( 'Invalid Credentials. Please try again.')
        return redirect(url_for('nbc'))
    else:
        flash ("Welcome" ""+Name)
        return redirect(url_for('nbc'))
return render_template('nbc.html', error=error)

Шаблон HTML ниже.

 <html lang="en">

<head>
<link rel="stylesheet" href="/static/event.css" type="text/css">
</head>

<body>
<form action="/nbc" method="POST">
    <div class="login">
        <div class="login-screen">
            <div class="app-title">
                <h1>Login</h1>
            </div>

            <div class="login-form">
                <div class="control-group">
                    <input type="text" class="login-field" placeholder="username" name="username" value="{{ request.form.username }}">
                    <label class="login-field-icon fui-user" for="login-name"></label>
                </div>

                <div class="control-group">
                    <input type="password" class="login-field" placeholder="password" name="password" value="{{ request.form.password }}">
                    <label class="login-field-icon fui-lock" for="login-pass"></label>
                </div>

                <input type="submit" value="Log in" class="btn btn-primary btn-large btn-block">
                <br>
                <div id="navbar" class="app-titl">
                    <a class="nav navbar-nav"></a>
                    <li class="active"><a href="{{ url_for('index') }}">Home</a></li>
                    <a href="{{ url_for('index') }}"></a>


                </div>
            </div>
        </div>
    </div>
</form>
{% extends "layout.html" %} {% block body %} {% if error %}
<p class=error><strong>Error:</strong> {{ error }} {% endif %} {% endblock %}

1 Ответ

0 голосов
/ 28 сентября 2018

Вам нужно добавить что-то вроде следующего в ваш шаблон, чтобы перехватывать и отображать любые флеш-сообщения.

<div class="flashwrapper">
  {% with messages = get_flashed_messages(with_categories=True) %}
    {% if messages %}
       {% for category, message in messages %}
          <div id=flashwrapper class="alert alert-{{ category }} alert-dismissible" role="alert">{{ message }}
            <button type="button" class="close" data-dismiss="alert" aria-label="Close" onClick="close('flashwrapper')">
          </div>
       {% endfor %}
    {% endif %}
  {% endwith %}
</div>

Редактировать: поместить что-то подобное в файл приложения в нужном месте.Я не уверен, где взять переменную username в вашем коде, поэтому вам, возможно, придется немного поработать над этим.

from flask import flash

flash("Hello {username}. You are most welcome!".format(username), 'success')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...