我已经创建了一个由 node.js 服务的AngularJS应用,现在我被要求从该应用转移到 python flask 。我遇到了一些错误,在搜索后被告知我必须包含 flask.ext.triangle ,但是当我尝试访问 localhost:5000 时,我会收到此错误:
flask.cli.NoAppException:导入“服务器”时,出现ImportError 引发:ModuleNotFoundError:没有名为“ flask.ext”的模块
我已经使用pip安装了 flask-triangle 。我的 server.py 是这样的:
from flask import Flask, render_template
from flask.ext.triangle import Triangle
app = Flask(__name__)
Triangle(app)
@app.route('/')
def mainPage():
return render_template('main.html')
在导入三角形之前,我遇到了有关AngularJS过滤器的错误。所有的路由和实用程序都由AngularJS处理,我只希望flask为我的应用程序提供服务。
答案 0 :(得分:1)
无法使三角形工作,所以我找到了另一种方法来使事情成真。发现如果将 AngularJS表达式括号更改为其他内容,而您完全忘记了 triangle 页面加载。这是我在 AngularJS app.js 上的配置:
.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('//').endSymbol('//');
});
现在我要做的就是转到我的 HTML 文件,并将 {{}} 更改为 ////。>
编辑:
找到了最合适的方法。而不是使用 render_template 并不得不与 Jinja 混为一谈,我使用了 current_app.send_static_file 来提供我的 HTML ,但是没有根本没有问题。我更新的 server.py :
from flask import Flask, current_app
app = Flask(__name__)
@app.route('/')
def mainPage():
return current_app.send_static_file('main.html')
其他所有操作均由 AngularJS 处理,无需配置表达式定界符,而使用内置的 {{}} 。