I'M A NING PERSON 2023-07-09 05:16 采纳率: 0%
浏览 114

用flask搭建的服务器的代码运行成功,但是在浏览器上一直转圈打不开

在pycharm搭建了一个服务器,可以运行成功,但是在浏览器上打不开,端口没有被占用,防火墙也没有阻拦,host换了“localhost”和“127.0.0.1”也都没有用

img

  • 写回答

3条回答 默认 最新

  • Hi 小朋友 2023-07-09 05:45
    关注

    你都没写路由,不转圈才怪

    评论
  • IT工程师_二师兄 2023-07-09 07:37
    关注

    那就是没搭建成功

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-09 08:35
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7623492
    • 这篇博客你也可以参考下:Flask--如何在pycharm中导入并运行flask项目
    • 除此之外, 这篇博客: Pycharm之开始使用、flask视频分镜头处理中的 2.我们需要对视频的每一帧进行提取。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 注意:(1)需要在项目文件夹下手动新建存放图片的文件夹;(2)尽量不要使用os.chdir()去改变路径,容易“迷惑”Pycharm寻找文件,使用默认地址即可;(3)一定注意路径的使用,比如:视频放在项目的所属文件中

      from flask import Flask,render_template
      import os
      import cv2
       
      app=Flask(__name__)
       
      def genFrame():
          v_path='static/ghz.mp4'
          image_save='static/pic'
       
          if not(os.path.exists(image_save)):
              os.mkdir(image_save)
       
          cap=cv2.VideoCapture(v_path)
          fc=cap.get(cv2.CAP_PROP_FRAME_COUNT)
       
          for i in range(int(fc)):
              _,img=cap.read()
              cv2.imwrite('static/pic/image{}.jpg'.format(i),img)
       
      @app.route('/')
      def index():
          genFrame()   
          return render_template('index.html')
       
      if "__main__"==__name__:
          app.run()

      html文件内容则为:

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      视频分镜
      <br>
      <video width="180" height="320" controls autoplay>
        <source src="static/ghz.mp4" type="video/mp4">
        <object data="static/ghz.mp4" width="180" height="320">
          <embed width="180" height="320" src="static/ghz.mp4">
        </object>
      </video>
      
      </body>
      </html>

      结果:

       

      pic文件里也有所有的图片,例如:

       

    • 您还可以看一下 李焱兵老师的python flask web开发入门与项目实战课程中的 搭建开发环境[请安装专业版pycharm]小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      首先,服务器无法在浏览器上打开可能有以下几个原因导致:

      1. 端口被占用:请再次确认端口是否被其他程序占用。可以使用netstat -ano命令(Windows)或lsof -i :port命令(Mac/Linux)检查端口占用情况。

      2. 防火墙阻拦:除了确认本地防火墙之外,也需要检查路由器或网络设备上的防火墙设置,确保端口被正确放行。

      3. Flask配置问题:请检查Flask应用程序的配置,特别是app.run()函数的参数。确保host参数设置为正确的IP地址,可以尝试将其改为0.0.0.0来监听所有网络接口。

      根据参考资料中的代码片段,可以看出这是一个基于Flask的API接口。如果代码已经成功运行并且没有报错,那么可能是服务器的问题。

      在代码中,letter_api.add_resource(Letter_Res,'/message',endpoint='message')这一行表明在路径/message上注册了一个资源。但这并不意味着服务器会自动监听该路径,还需要在app.run()函数中使用hostport参数指定服务器的监听地址和端口。

      以下是一个可能的解决方案:

      from flask import Flask
      
      app = Flask(__name__)
      
      # 加载资源
      from financial.resource.letter.letter_resource import Letter_Res
      app.add_resource(Letter_Res,'/message',endpoint='message')
      
      if __name__ == "__main__":
          app.run(host='0.0.0.0', port=5000)
      

      上述代码中的host参数设置为0.0.0.0,这将使服务器监听所有网络接口。port参数设置为5000,你可以根据需要更改为其他未被占用的端口。

      请尝试运行上述代码,并在浏览器中访问http://127.0.0.1:5000/message,如果仍然无法打开,请确认代码中是否还有其他相关配置,并提供更多细节以供进一步分析问题。

    展开全部

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部