python - Flask登录(无数据库)

标签 python rest flask

我正在尝试在 Flask 中实现以下 View :

  1. /索引
    * 显示包含用户名和密码条目的表单
    * 提交后,重定向到 2

  2. /参数
    * 显示了另一个包含更多条目的表单
    * 只有在他们为 1 提供用户名和密码时才能查看
    * 提交后,重定向到 3

  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/

相关文章:

python - 在 Keras 中同时增强 X,y

android - Flask POST 400 访问请求 JSONObject 时出错

javascript - Python Flask 日期实时更新

面向业余程序员的 Python(几个问题)

python - Python 中的敏捷软件开发

wcf - 以编程方式调用 WCF REST 服务而不引用合约

web-services - 如何决定使用消息传递(例如 RabbitMQ)还是使用 Web 服务进行后端组件交互/通信?

WCF休息: WebHost failed to Process Request

python - 应用程序未获取 .css 文件(flask/python)

python - 当函数返回时停止 SIGALRM