Python 关于Flask的动态路由问题

Python 关于Flask的动态路由问题,python,python-3.x,flask,Python,Python 3.x,Flask,我正在尝试在我的Flaks应用程序中创建一个登录区域,每个用户都有自己的路径来访问他们的信息 /user/<userid>/dashboard /user/<userid>/profile /user/<userid>/operations /user/<userid>/analytics /user//仪表板 /用户//配置文件 /用户//操作 /用户//分析 最好的处理方法是什么?在下面的示例中,我在url_中的登录之后传递userId

我正在尝试在我的Flaks应用程序中创建一个登录区域,每个用户都有自己的路径来访问他们的信息

/user/<userid>/dashboard 
/user/<userid>/profile
/user/<userid>/operations 
/user/<userid>/analytics
/user//仪表板
/用户//配置文件
/用户//操作
/用户//分析
最好的处理方法是什么?在下面的示例中,我在url_中的登录之后传递userId变量。一旦重定向来自html模板,我就不知道如何将用户ID传递到其他路由

我读了一些关于用一个方法拥有多个路由的文章,但不明白它是否符合我的需要。感谢您的提问,并提前表示感谢

@app.route('/logon', methods=['POST'])
def logon():
    username = request.form['username']
    passwd = request.form['password']
    user = login_verified(username, passwd)
    session['token'] = user['idToken']
    return redirect(url_for('dashboard', usrId=user['userId']))

@app.route('/user/<usrId>/dashboard', methods=['GET'])
def dashboard(usrId):
    if 'token' in session:
        print('User ID = %s' % usrId)
        return render_template('dashboard.html')
    else:
        return redirect(url_for('login'))
@app.route('/logon',methods=['POST'])
def logon():
用户名=请求。表单['username']
passwd=request.form['password']
用户=登录\已验证(用户名、密码)
会话['token']=用户['idToken']
返回重定向(url_for('dashboard',usrId=user['userId']))
@app.route('/user//dashboard',methods=['GET'])
def仪表板(usrId):
如果会话中有“令牌”:
打印('User ID=%s'%usrId)
返回呈现模板('dashboard.html')
其他:
返回重定向(url_用于('login'))

伙计们刚刚找到了一种方法来完成我一直在寻找的任务(不知道这是不是最好的方法,但效果不错)。下面是我找到的解决方案:

@app.route('/logon', methods=['POST'])
def logon():
    username = request.form['username']
    passwd = request.form['password']
    user = login_verified(username, passwd)
    session['token'] = user['idToken']
    return redirect(url_for('dashboard', usrId=user['userId']))


@app.route('/user/<usrId>/dashboard', methods=['GET'])
def dashboard(usrId):
    if 'token' in session:
        print('User ID = %s' % usrId)
        return render_template('dashboard.html', user=usrId)
    else:
        return redirect(url_for('login'))


@app.route('/user/<usrId>/operations', methods=['GET', 'POST'])
def operations(usrId):
    if 'token' in session:
        return render_template('operations.html', user=usrId)
    else:
        return redirect(url_for('login'))
@app.route('/logon',methods=['POST'])
def logon():
用户名=请求。表单['username']
passwd=request.form['password']
用户=登录\已验证(用户名、密码)
会话['token']=用户['idToken']
返回重定向(url_for('dashboard',usrId=user['userId']))
@app.route('/user//dashboard',methods=['GET'])
def仪表板(usrId):
如果会话中有“令牌”:
打印('User ID=%s'%usrId)
返回呈现模板('dashboard.html',user=usrId)
其他:
返回重定向(url_用于('login'))
@app.route('/user//operations',methods=['GET','POST'])
def操作(usrId):
如果会话中有“令牌”:
返回呈现模板('operations.html',user=usrId)
其他:
返回重定向(url_用于('login'))
还有模板

<body>
    <h1>Dashboard</h1>
    <div>
      <a href="{{ url_for('operations', usrId=user) }}">Operações</a>
      <a href="">Perfil</a>
    </div>
    <br />
    <input type="button" value="Logout" onclick="location.href='/logout'" />
  </body>

仪表板


我可以在6小时内完成。为什么会这样。堆栈溢出阻止了我这么做。一旦我点击“检查图标”,它说我可以在6小时内完成。(不知道为什么)