python - flask如何处理web api

标签 python nginx flask

我正在使用 Nginx+uWSGI+Flask 构建 Web 服务 API。

我关注 http://flask.pocoo.org/docs/0.10/deploying/uwsgi/如下

在 Nginx 中,我希望 Flask 处理所有请求 appapi,而其他请求由 nginx 处理。

例如
http://www.example.com/appapi/query?name=123将由 flask 处理
http://www.example.com/将由 nginx 处理。

我添加以下配置让 flask 处理。

location = /appapi { rewrite ^ /appapi /; }
location /appapi { try_files $uri @appapi ; }
location @appapi {
  include uwsgi_params;
  uwsgi_param SCRIPT_NAME /appapi;
  uwsgi_modifier1 30;
  uwsgi_pass 127.0.0.1:3301;
}

uWSGI 已经监听了 3301 端口,并将加载 Flask 应用程序,在 Flask 应用程序代码中。我已经为 appapi 定义了路由

@app.route('/appapi/query', methods=['GET'])
def query():
    print 'query()'

但是我发现查询函数没有被调用,并且在日志中。它返回 404,未找到。
提前致谢!

最佳答案

你可以这样做:

@app.route('/query', methods=['GET'])
def query():
    print 'query()'

然后在 Nginx 配置中:

location /appapi/ {
  include uwsgi_params;
  uwsgi_pass 127.0.0.1:3301;
}

关于python - flask如何处理web api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350782/

相关文章:

php - 超过 1.5GB 时,JQuery 文件上传到 NGINX/PHP 服务器失败

javascript - Python/Flask/HTML - 在新窗口而不是主页中呈现 HTML

python - 如何覆盖 Flask 蓝图 URL?

javascript - 使用 Python 从也包含非 JSON 声明的 .js 文件中提取 JSON?

python - 报告多个 Python 版本的累积覆盖率

python - 无法强制脚本重试五次,除非中间出现 200 状态

python - 尝试从目录外部导入时出现 ModuleNotFoundError

nginx - Kubernetes Ingress 非根路径 404 Not Found

ssl - 性能 : Does SSL trust chain order matter?

templates - 为什么 Flask/OpenShift 下的 trim_blocks 和 lstrip_blocks 在在线测试时会产生不同的结果,而在本地测试时会产生不同的结果?