2015-12-08 116 views
-1

我一直在嘗試太久以獲取用戶的電子郵件和密碼。我是一個(巨大)初學者,我覺得我的教程的理解是遠遠不夠的...這是我(想)有:無法驗證用戶憑據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 = '[email protected]' 
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) 

預先感謝您的任何建議或評論,我會真的很感激。

有一個愉快的一天, 約翰

+0

你是什麼意思「無法驗證用戶憑證」,你能解釋一下嗎? –

+0

使用我現在的代碼,不管它看起來什麼都沒有發生......我只想驗證用戶輸入的值是否與配置值相對應,如果是,則轉到page/app。這裏是我的html:

+0

應該是'request.form'而不是'request.POST'? –

回答

0

後我作爲最終的答案評論:

  1. 問題之一:

我們得到的表單數據的方式是通過request.formrequest.POST

  • 問題二:
  • 當你重定向到另一個頁面,它應該是url_for('endpoint'),不url_for('/app')。例如:

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

    那麼重定向應該是:redirect(url_for('admin'))