Python 如何用flask处理webapi

Python 如何用flask处理webapi,python,nginx,flask,Python,Nginx,Flask,我正在使用Nginx+uWSGI+Flask构建一个web服务API 我的发言如下 在Nginx中,我希望Flask处理所有请求appapi,其他由Nginx处理 例如 将由烧瓶处理 将由nginx处理 我添加了下面的配置以让flask处理 location = /appapi { rewrite ^ /appapi /; } location /appapi { try_files $uri @appapi ; } location @appapi { include uwsgi_para

我正在使用Nginx+uWSGI+Flask构建一个web服务API

我的发言如下

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

例如
将由烧瓶处理
将由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具有listen 3301端口,将加载烧瓶应用程序中的烧瓶应用程序代码。我已经为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;
}

它似乎有效,谢谢,我还有一个问题,为什么文档()使用uwsgi_modifier1和uwsgi_参数,为什么它不起作用?
uwsgi_modifier1
不推荐使用
uwsgi_param
传递脚本名称,但只使用基于
/
的路由更简单是的,我使用/routes,它工作正常,然后我只想将api路由到flask和其他由nginx处理的对象,但我遇到了post中提出的问题。