我正在尝试在 Flask 中实现以下 View :
/索引
* 显示包含用户名和密码条目的表单
* 提交后,重定向到 2/参数
* 显示了另一个包含更多条目的表单
* 只有在他们为 1 提供用户名和密码时才能查看
* 提交后,重定向到 3/上传
* 对从 1 和 2 输入的字段执行 magic()
*只有填写1和2才可见
我看到的每个 教程都假定您使用数据库。来自 1 的用户名和密码未针对任何数据库进行检查。它们仅用于 ntlm 身份验证...
这能做到吗?还是我误用了 flask ?
最佳答案
您可以使用 session 来存储用户名和密码以及指定用户已完成前两个步骤的标志:
import flask
app = flask.Flask(__name__)
app.secret_key = 'something'
def validate_upload(f):
def wrapper():
if 'completed' not in flask.session or not flask.session['completed']:
return flask.redirect('/')
return f()
return wrapper
@app.route('/', methods = ['GET'])
def home():
html = """
<form action='/second' method = 'POST'>
<input type='text' name='username'>
<input type='password' name='password'>
<input type='submit' value='Submit'>
</form>
"""
return html
@app.route('/second', methods=['POST'])
def second():
username, password = flask.request.form['username'], flask.request.form['password']
flask.session['username'] = username
flask.session['password'] = password
flask.session['completed'] = True
return flask.redirect('/upload')
@app.route('/upload', methods=['GET'])
@validate_upload
def do_something():
return '<p>Doing something with values</p>'
关于python - Flask登录(无数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51531177/