【问题标题】:Flask and Angular Web Application RoutingFlask 和 Angular Web 应用程序路由
【发布时间】:2023-03-14 06:41:01
【问题描述】:

我想主要使用 Python Flask 框架和 AngularJS 制作一个 Web 应用程序,在考虑这样做并维护应用程序的功能时,我开始想知道如何处理路由。

在flask中很容易管理后端如何直接处理路由:

@app.route('/')
def home():

显然,在 Angular 中,管理路由也很容易,并且可以通过加载特定的控制器来处理数据,以通过 XHR 访问后端的某些部分等等。

要制作一个优秀的单页 Web 应用程序,我是否会从将所有路由责任委托给 Flask 或 Angular 中获益最多,或者让 Flask 仅使用 / 处理所有路由并让 Angular 处理是否有意义?包含该单个视图中更改的所有哈希路由。

我不完全确定如何解决和委派这个问题,我意识到没有一种方法可以做到这一点,但我有兴趣看看是否有人以前搞砸过这个问题,以及他们发现什么更容易处理。

【问题讨论】:

    标签: javascript python angularjs flask


    【解决方案1】:

    看看这个example,它的编写和记录都非常好。如果您查看controllers.py 文件,您会注意到他使用 Flask/Python 作为 RESTful API,并且他让 Angular 处理所有静态模板。

    编辑:我以前从未看过这个,但this 似乎真的很酷,可能会让你的生活更轻松。另外,这是一个question,与我刚刚找到的你的非常相似。

    【讨论】:

    • 非常感谢,您个人有使用Flask restful 模块的经验吗?只是好奇
    • 我个人没用过Flask-restful。
    【解决方案2】:

    我知道这是旧线程。但是如果有人想通过 Flask 为 Angular 或 AngularJS 提供服务,那么最简单的解决方案是通过 Angular 路由处理 404 not found 错误并在 Flask 端返回客户端页面。

    @app.errorhandler(404)
    def not_found_error(error):
        return render_template('index.html')
    

    【讨论】:

      【解决方案3】:

      我想这取决于你想如何构建你的应用程序。对我来说,如果您将整个网站视为一个应用程序,那么允许 Angular 处理所有客户端端点并将 Python 用作 RESTful 服务是有道理的。

      但是,如果您有任何要在 SPA 之外呈现服务器端的静态内容,那么您可以在 Python 中执行该路由。

      【讨论】:

        【解决方案4】:

        一种选择是将 Flask 和 AngularJS 应用程序分开。这样,Flask 路由用于公开客户端应用程序 (AngularJS) 将使用的 api 端点。 AngularJS 路由将用于客户端路由。

        我写了一篇关于同时使用 Flask 和 AngularJS 的教程 - http://tutsbucket.com/tutorials/building-a-blog-using-flask-and-angularjs-part-1/

        希望对您有所帮助。

        【讨论】:

        猜你喜欢
        • 2017-06-12
        • 1970-01-01
        • 2019-01-26
        • 2016-04-14
        • 1970-01-01
        • 2015-03-12
        • 2020-04-17
        • 2020-10-04
        • 1970-01-01
        相关资源
        最近更新 更多