无法验证用户凭据Python + Flask

时间:2015-12-08 13:13:56

标签: python flask

我一直在努力获取用户的电子邮件和密码。我是一个(巨大的)初学者,我认为我对教程的理解已经不够了......这就是我(试过)所拥有的:

# all the imports
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, \
    abort, render_template, flash, send_from_directory
from contextlib import closing

# configuration

DATABASE = '/tmp/database.db'
DEBUG = True
SECRET_KEY = 'hey'
USERNAME = 'admin@admin.com'
PASSWORD = 'default'

app = Flask(__name__, static_url_path='')
app.config.from_object(__name__)

# set the project root directory as the static folder, you can set others.

# app = Flask(__name__, static_url_path='')

@app.route('/', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        if request.POST['inputEmail'] != app.config['USERNAME']:
            error = 'Invalid username'
        elif request.POST['inputPassword'] != app.config['PASSWORD']:
            error = 'Invalid password'
        else:
            session['logged_in'] = True
            return redirect(url_for('/app'))

    return render_template('index.html', error=error)

提前感谢您提出任何建议或意见,我真的很感激。

祝你有愉快的一天, 约翰

1 个答案:

答案 0 :(得分:0)

发表我的评论作为最终答案:

  1. 问题一:
  2. 我们获取表单数据的方式是request.form而不是request.POST

    1. 问题二:
    2. 当您重定向到其他网页时,它应该是url_for('endpoint'),而不是url_for('/app')。例如:

      @app.route('/app')
      def admin():
          pass
      

      然后重定向应为:redirect(url_for('admin'))