在用户登录时向用户显示烧瓶中的已处理结果

时间:2018-06-19 21:16:08

标签: python html database flask sqlalchemy

我是Flask的新手,对Python没有太多经验。 根据我的项目的要求,我需要使用用户提供的输入在后端(通过Python脚本)进行某些处理,并在用户登录后向用户显示最终结果。

关于我的项目用途的简短描述-每当用户登录时,他/她都会以html形式输入任何Twitter句柄,而python脚本会获取有关该句柄的某些详细信息(用户,关注者,推文数量等),此过程大约需要5-6分钟。目前,我正在处理所有这些数据并将其存储为CSV,然后将结果显示为HTML。

现在,我不希望我的用户等待这5-6分钟来查看结果,因此希望将处理后的结果存储在数据库中,以便用户每次登录时都可以查看它们,例如即使在1-2小时后。

如何使用SQLAlchemy在Flask中实现此功能?我已经建立了用于登录屏幕的数据库,如下所示,但是不知道如何处理。

engine = create_engine('sqlite:///tutorial.db', echo=True)
app = Flask(__name__)

@app.route('/')
def home():
    if not session.get('logged_in'):
        return render_template('login.html')
    else:
        return render_template('test.html')

@app.route('/login', methods=['POST'])
def do_admin_login():
    error = False
    POST_USERNAME = str(request.form['username'])
    POST_PASSWORD = str(request.form['password'])
    Session = sessionmaker(bind=engine)
    s = Session()
    query = s.query(User).filter(User.username.in_([POST_USERNAME]), 
User.password.in_([POST_PASSWORD]))

    data = query.first()
    if data:
        session['logged_in'] = True
        flash('Login success')
        return render_template('test.html')
    else:
        flash('Login failed!')
        return render_template('login.html',error=True)

@app.route("/logout")
def logout():
    session['logged_in'] = False
    return home()

上面提到的test.html将twitter句柄作为用户通过html表单的输入。

0 个答案:

没有答案