我是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表单的输入。