发布
社区首页 >问答首页 >在本地主机开发过程中,在子url上提供一个烧瓶应用程序。

在本地主机开发过程中,在子url上提供一个烧瓶应用程序。
EN

Stack Overflow用户
提问于 2013-11-30 02:18:35
回答 2查看 1.7K关注 0票数 0

我有一个作为后端的Flask应用程序,它提供REST和AngularJS前端应用程序。

我使用Grunt/Livereload在地址:http://localhost:5000/的前端服务

在开发过程中,是否可以在本地主机的子url上使用来自werkzeug的app.run()run_simple来服务Flask应用程序?具体来说,我希望可以在地址:http://localhost:5000/api上访问该应用程序。

我找到了这个解决方案,但是它的缺点是在http://localhost:5000/上提供一个虚拟应用程序,它使用这个地址,并且不允许我在那个地址上提供AngularJS应用程序。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-01 20:26:32

设置瓶和约曼的方式--您实际上不能这样做--它是可能有两个进程共享同一个端口,但通常是为了允许一个主进程将单个请求传递给子进程,这并不完全是您在这里所做的。(通常,在生产中,您可以在代理服务器(如nginx)后面运行前端和后端。)

幸运的是,你不必为了开发你的应用而重新发明方向盘或运行一个单独的代理服务器--有一个名为咕噜-连接-代理的Grunt插件,它可以让你向另一个地方的子url请求代理。这将使您可以在另一个端口(例如端口5001)上拆分您的Flask后端服务器,并将代理请求转到localhost:5000/api (例如)到localhost:5001/

代码语言:javascript
代码运行次数:0
复制
connect: {
    options: {
        port: 5000,
        hostname: 'localhost'
    },
    proxies: [
        {
            context: '/api',
            host: '127.0.0.1',
            port: 5001,
            https: false,
            changeOrigin: false,
            xforward: false
        }
    ]
}

然后你可以用app.run(port=5001)运行你的烧瓶应用程序。

票数 3
EN

Stack Overflow用户

发布于 2013-11-30 02:38:24

这对我来说很管用

代码语言:javascript
代码运行次数:0
复制
from flask import Flask
prefix = '/abc'
app = Flask(__name__)

# redefine route
def route(path, *args, **kwargs):
    return _route(prefix + path, *args, **kwargs)
_route = app.route
app.route = route

# Test function
@app.route('/')
def hello_world():
return 'Hello World!'

if __name__ == '__main__':
    app.run()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20295774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档