Flask 上的错误 url 重定向 [关闭]

问题描述 投票:0回答:0

我想创建一个在远程机器(树莓派 0 2w 板)上运行的烧瓶应用程序,以从我本地机器(我的电脑)上的网页查看和配置相机(插入树莓上的 USB)。

这是我的 python 脚本:

import picture
from flask import Flask, redirect, url_for, request, render_template
app = Flask(__name__)

@app.route('/', methods=['POST', 'GET'])
def choice():
    if request.method == 'POST':
        valeur_select = request.form['action']
        if valeur_select == 'Picture':
            return redirect(url_for('picture'))
        else :
           return redirect(url_for('video'))
    return render_template('form.html')


@app.route('/Picture', methods=['POST', 'GET'])
def picture():
    if request.method == 'POST':
        duration = request.form['duration']
        width = request.form['width']
        height = request.form['height']
        picture.take_picture(duration, width, height)
        return 'photo prise'
    return render_template('picture.html')

@app.route('/Video')
def video():
   return 'yes'

if __name__ == '__main__':
   app.run(host='0.0.0.0', port=5000)

当我运行脚本时,我可以通过以下地址访问第一个html页面(form.html):http://:5000/。当我填写表格并发送时,我被重定向到这个地址:http://localhost:5000/。我的 WEB 页面中出现以下错误消息:无法连接 Firefox 无法与位于 localhost:5000 的服务器建立连接。但是,我可以通过地址 http://:5000/Picture 访问我的 html 页面 picture.html。我的控制台中没有显示错误: `camera@camera:~/user_space $ python user_space.py

  • Serving Flask 应用“user_space”(延迟加载)
  • 环境:生产 警告:这是一个开发服务器。不要在生产部署中使用它。 请改用生产 WSGI 服务器。
  • 调试模式:关闭
  • 运行于http://0.0.0.0:5000/(按CTRL+C退出) 192.168.0.233 - - [2023 年 5 月 18 日 11:03:41]“GET / HTTP/1.1”200 - 192.168.0.233 - - [18/May/2023 11:03:47] “GET / HTTP/1.1” 200 -`

为了解决我的问题,我首先像这样多次修改我的 picture.html 代码:

<form action = "http://<remote machine IP address>/Picture" method = "post">
<form action = "/Picture" method = "post">

我修改了 /etc/hosts 文件,将

127.0.1.1 camera
行替换为
<remote machine IP address> camera

我检查了防火墙是否阻止了端口 5000:`camera@camera:~/user_space $ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination`

我检查了我的html代码在模板文件夹中:

camera@camera:~/user_space/templates $ ls 
form.html picture.html

我检查了可能的错误:

camera@camera:~/user_space $ journalctl -u flask.service -- Journal begins at Wed 2023-05-03 02:36:11 CEST, ends at Thu 2023-05-18 09:42:17 CEST. -- No entries --

我试过换浏览器,错误依旧。

python flask http-redirect
© www.soinside.com 2019 - 2024. All rights reserved.