烧瓶登录(无数据库)

我正在尝试在flask中实现以下视图:

  1. / index
         *显示带有用户名和密码条目的表单
         *提交后,重定向到2

  2. / params
         *显示具有更多条目的另一种形式
         *仅
         在提交时提供了1 *的用户名和密码的情况下可见, *重定向到3

  3. / upload
         *对从1&2输入的字段执行magic()
         *仅在它们填写1&2时可见


我看过的每个教程都假设您使用数据库。不会针对任何数据库检查来自1的用户名和密码。它们仅用于ntlm身份验证...

能做到吗?还是我滥用烧瓶?


摇曳的蔷薇
浏览 157回答 2
2回答

慕的地8271018

您可以使用一个会话来存储用户名和密码以及一个标志,用于指定用户已完成前两个步骤:import flaskapp = flask.Flask(__name__)app.secret_key = 'something'def validate_upload(f):&nbsp; def wrapper():&nbsp; &nbsp; if 'completed' not in flask.session or not flask.session['completed']:&nbsp; &nbsp; &nbsp; return flask.redirect('/')&nbsp; &nbsp; return f()&nbsp; return wrapper@app.route('/', methods = ['GET'])def home():&nbsp; html = """&nbsp; <form action='/second' method = 'POST'>&nbsp; &nbsp; <input type='text' name='username'>&nbsp; &nbsp; <input type='password' name='password'>&nbsp; &nbsp; <input type='submit' value='Submit'>&nbsp; </form>&nbsp; """&nbsp; return html@app.route('/second', methods=['POST'])def second():&nbsp; username, password = flask.request.form['username'], flask.request.form['password']&nbsp; flask.session['username'] = username&nbsp; flask.session['password'] = password&nbsp; flask.session['completed'] = True&nbsp; return flask.redirect('/upload')@app.route('/upload', methods=['GET'])@validate_uploaddef do_something():&nbsp; return '<p>Doing something with values</p>'

蝴蝶刀刀

正如您提到的NTLM身份验证一样,我假设您正在Windows网络中运行。如果是这样,我不确定为什么您需要一个用户可以输入用户名和密码的表格。NTLM和Kerberos使用Windows会话的主体通过在同一域内运行的服务对用户进行身份验证。用户一次登录Windows,并且在调用服务时会自动使用该身份对用户进行身份验证。Flask使用Flask-Kerberos模块支持此功能
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python