是否可以根据数据库中的数据生成路线? 目前我有一条一般路线:

@main.route('/profile’)
def profile(user_name):

    return render_template('profile.html', name=user_name)

@main.route('/video_stream')
def video_stream():
    camera = CameraHandler(cv2.VideoCapture(0))
    camera.start()
    camera_threads[stream_id] = camera

    return Response(camera.gen(), mimetype='multipart/x-mixed-replace; boundary=frame')

profile.html 如下所示:

{% extends "base.html" %}

{% block content %}
<div class="container has-text-centered">
  <h1 class="title">
    Welcome, {{ name }}!
  </h1>
  <h3 class="title">
    This is a stream from your camera
  </h3>
  <img src="{{ url_for('main.video_stream') }}">
</div>
{% endblock %}

正如预期的那样,它工作正常。 但是我现在想要为特定用户动态创建新路由。 因此,如果在数据库中我有一个名为“Test”且 id=1 的用户,那么如果用户将登录,那么路由应该如下所示:

/profile/Test/stream?id=1

我想将我的路线更改为这样的事情会完成这项工作:

@main.route('/profile/<string:user_name>')
def profile(user_name):

@main.route('/video_stream/<int:stream_id>')
def video_stream(stream_id):

但据我所知......不知道如何正确解释......不会有其他路线,因为这只会创建一条路线。 例如:以 ID 为 1 的用户身份登录,我将有一个带有路由 /profile/Test?id=1 的页面,一切都会正常工作。 但是,当我用不同的帐户登录另一台机器时,假设 ID 为 2 的 Test2,那么之前的路由将停止存在,而新的 /profile/Test2?id=2 将是这里唯一的路由。

那么,可以动态创建新路由,但保持先前创建的活动状态?

#1楼 票数:0

因此,如果我理解正确,您只希望登录用户访问/profile/Test?id=user_id 这不是一个真正的路由问题,它更像是一个身份验证问题。 您在个人资料页面中想要的内容可能是这样的:

from flask import request, session

@main.route('/profile/<string:user_name>')
  if request.args.get('id') == session.get('user_id')
    pass # proceed

在上面的示例中,我假设当用户成功登录到您的应用程序时,您使用该用户的 ID 设置一个名为 user_id 的会话。 这样,用户将只能查看 ?id= 与用户自己的 ID 匹配的配置文件。

  ask by gawron103 translate from so

未解决问题?本站智能推荐:

2回复

带有名称的Python路由不起作用,但简单路由在服务器上运行,但是在本地主机上运行正常

我只是制作了一个 python 应用程序,它在我的本地主机上运行良好,但在服务器上它运行简单的路由 ('/') 但名称 ('/hello') 它不起作用,我的主机是共享的 Cpanel 内衬服务器我从日志中得到的错误是 申请过程提前退出。 这是我的代码
2回复

如何在烧瓶中接受空的url路由?

我正在使用无法更改固件的硬件机器。 我应该从他们那里制作一个服务器,我唯一可以配置的就是 IP 和端口。 首先,我在 Flask 中制作了以下服务器 我收到了 308 错误: 然后我使用了以下包罗万象的 url 方法来帮助我的案例。 但是,我仍然遇到相同的错误:
1回复

Python和Flask我无法访问views.py中定义的路由

我在 Python 中有应用程序并使用 Flask。 这是没有 html 文件的 web api 应用程序。 在 server_pi.py 我有: 应用程序启动,当我在浏览器中输入: localhost:8082/它向我显示Hello world但我在 app 文件夹中的 views.py 文件中有
2回复

python/Flask:使用动态第一个组件进行路由

我正在编写一个Flask网站,我希望为其提供以下路由: 虽然看起来这在理论上应该可行,但看起来这实际上破坏了位于根static /目录中的静态资源。 我认为这是因为我的动态路由实际上与“ static / style.css”匹配,因此覆盖了静态文件的常规处理程序。 有没有办法解决?
1回复

动态定义烧瓶路径和导入数据

我正在开始学习Flask,说实话,我已经在学习的桌子部分达到了顶峰。 我能够成功地使用flask创建一些路由,但是当我尝试动态生成它们时,我不断遇到断言错误:“ AssertionError:视图函数映射正在覆盖现有的端点函数:j_show_html” 为了解决这个问题,我尝试动态创建p
2回复

如何在Flask应用程序中创建动态子域

我正在尝试在Flask应用程序中设置变量路由处理,例如此答案中所述: Web应用程序中的动态子域处理(Flask) 但是,我希望能够在某些子域被变量路由捕获之前对其进行识别,因此我可以使用flask-restful api扩展( 使用RESTful进行路由 )。 例如,我尝试了以下方法:
2回复

如何在FlaskAPI路由系统中定义基本路由

在某些框架中,例如苗条的php框架中,您可以定义基本路由,该路由在/api/v1类的所有路由中都相同。 因此,在苗条的情况下,我们可以对路由进行分组,以不将/api/v1放在每条路由中: 但是在Flask中,我找不到一种简单的方法来对路线进行分组。 如果必须在我调用的每个资源中都编写/
1回复

CherryPy上的Flask路由问题

我在http://flask.pocoo.org/snippets/24/上尝试了这个方法,让Flask在CheryPy服务器上工作,它到目前为止没问题。 但除了“/”之外,我无法路由任何其他内容。 例如,如果我想路由到localhost / xyz,它返回“Hello World”。