Python 关于Flask的动态路由问题
我正在尝试在我的Flaks应用程序中创建一个登录区域,每个用户都有自己的路径来访问他们的信息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
/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小时内完成。(不知道为什么)