无法从html到python获取表单名称

问题描述 投票:3回答:1

我想从数据库中的用户配置文件页面description text中添加to description column,但是当我提交表单时,什么也没有发生,并且此列仍然为空。

登录后我可以在个人资料页面上获得idemail,但无法将description form传送到我的profile method

这是我的数据库结构

login method:

@app.route('/', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        email = request.form['email']
        password = request.form['password']


        cur = mysql.connection.cursor()
        cur.execute('SELECT * FROM users.data WHERE email = %s AND password = %s', 
                    (email, password))
        account = cur.fetchone()
        if account:
            session['loggedin'] = True
            session['id'] = account[0]
            session['email'] = account[3]
            return redirect(url_for('profile'))
        else:
            return render_template('error.html')

    return render_template('login.html')

profile method:

@app.route('/profile', methods=['GET','POST'])
def profile():
    if 'loggedin' in session:
        return render_template('profile.html', id=session['id'], email=session['email'])
    if request.method == 'POST':
        description = request.form['text']
        cur = mysql.connection.cursor()
        cur.execute('UPDATE users.data  SET description = %s WHERE id = ?', (description, session['id']))
        mysql.connection.commit()
        cur.close()
        return render_template('profile.html', id=session['id'], email=session['email'], description=description)
    else:
        return 'NO'

    return redirect(url_for('login'))

profile.html:

your session id is: {{ id }}
your session email is: {{ email }}
your session symptom is: {{ description }}

<form action="" method="post">
    <input type="text" name="text" class="form-control" placeholder="description">
    <button class="btn btn-primary">Add</button>
</form>

请协助。

html mysql python-3.x flask
1个回答
0
投票

我找到了答案:

@app.route('/profile', methods=['GET','POST'])
def profile():
    if request.method == 'GET':
        if 'loggedin' in session:
            return render_template('profile.html', id=session['id'], email=session['email'])

    elif request.method == 'POST':
        description = request.form['description']
        print(description)
        cur = mysql.connection.cursor()
#       cur.execute('INSERT INTO users.data(description) VALUES (%s)', (description))       
        cur.execute('UPDATE users.data SET description = %s WHERE id = %s', (description, session['id']))
        mysql.connection.commit()
        cur.close()
        print(description)
        return render_template('profile.html', description=description)
    else:
        return 'NO'

    return redirect(url_for('login'))
© www.soinside.com 2019 - 2024. All rights reserved.