无法使用Flask作为带有角度js的后端渲染index.html [已更新]

时间:2017-03-27 06:26:03

标签: python angularjs flask

我的应用程序结构如下:

--app
  --app.py
  --static
    --js
      --app.js
    --css
    --partial
      --home.html
  --templates
    --index.html

已经通过了this,但它是不同的

我的 app.py

@app.route("/")
def index():
    return send_file('static/partial/home.html')
    #tried with below as well
    #return make_response(open('static/partial/index.html').read())

我的 app.js

use strict';
var guts = angular.module('app', ['ngSanitize', 'ngCookies']);

我的 index.html

<!DOCTYPE html>
   <html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="app" ng-controller="appcontroller">
     <head>
     </head>

在本地服务器上托管应用程序时出现的错误是:

IOError: [Errno 2] No such file or directory: 'C:\\..\\..\\..\\..\\..\\app\\templates/index.html' , i tried changing this backslash with other options , not luck

P.S 我不想使用jinja模板 我也引用this博客作为参考。 有什么线索吗?

[更新]:最终目标是渲染home.html,其中有@ static / partial

1 个答案:

答案 0 :(得分:1)

那应该是return render_template('index.html')。无论它是否具有jinja模板代码,Flask都无法找到它,除非您指定它是模板文件(或直接使用send_from_directory)。

如果您真的想在链接的博客文章中使用send_file,请使视图函数返回send_file(os.path.join('templates', 'index.html')),这将为您处理所有斜杠废话。