flask 启动后接受不到请求

flask 启动后接受不到请求(postman: Could not get any response
There was an error connecting to http://...:...

代码结构:

server/
       run.py
       server/
              __init__.py
              log.py
              views/
                    __init__.py
                    container.py

run.py:

from docker_server import app
if __name__ == '__main__':
    app.run(port=8082, debug=True)

__init__.py under server dir:

from flask import Flask
app = Flask(__name__)
from server.views import container
app.register_blueprint(container.mod)

container.py:

mod = Blueprint('container', __name__, url_prefix='/container')
@mod.route("/", methods=['GET'])
def container_test():
    logger.debug("container test")
    return None

stackoverflow上也提过:

http://stackoverflow.com/ques...

阅读 10.2k
2 个回答

你在创建mod的时候指定了url_prefix='/container',访问的时候这样看看http://localhost:8082/container/。而且使用蓝图的时候还要指定views所在目录,官网的例子(如果指定,可能找不到这个蓝图):

from flask import Blueprint, render_template, abort
from jinja2 import TemplateNotFound

simple_page = Blueprint('simple_page', __name__,
                        template_folder='templates')

@simple_page.route('/', defaults={'page': 'index'})
@simple_page.route('/<page>')
def show(page):
    try:
        return render_template('pages/%s.html' % page)
    except TemplateNotFound:
        abort(404)

另外,蓝图推荐这样使用:

app/
    your_blueprint/
        __init__.py
        views.py
    __init__.py
    

app/__init__/py:

from flask import Flask
def create_app():
    app = Flask(__name__)
    
    from .your_blueprint import your_blueprint as main_blueprint
    app.register_blueprint(main_blueprint)
    return app
    

app/your_blueprint/__init__.py:

from flask import Blueprint

main  = Blueprint('main', __name__)

from . import views

你是在运行flask的机器上去访问的吗?如果不是,按照你的代码一定是无法访问的。就像stackoverflow中的答案一样,想要从其它机器访问,你需要配置一个启动参数,否则flask默认只监听127.0.0.1上的请求。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏