阅读flask.session与angularjs

时间:2013-06-19 16:41:31

标签: javascript python session angularjs flask

有没有办法在客户端的angular.js中使用flask.session访问会话集中的内容?我正在尝试传递数据并存储到来自flask的同一个调用中的会话,并且能够在稍后的流程中从角度读取它。

我没有使用模板系统。对于页面,我只提供索引文件,然后使用Angular完成剩下的工作。这是我对索引文件的调用:

@app.route("/")
def index():
    return make_response(open('templates/index.html').read())

2 个答案:

答案 0 :(得分:1)

如果您需要在模板中访问它,请在Flask中默认使用模板have access to session

<script>
var someConfigurationObject = {
    someKey: "{{session["somevalue"]}}",
    other: "keys",
    "go": "here"
};
</script>

如果您通过ajax电话来回发送数据,您只需将其包含在您的回复中:

return jsonify(data=your_data, session_info=session["special_key"])

答案 1 :(得分:0)

在Angular上提供服务以从您的服务器读取。

app.factory('Session', ['$http', function ($http) {
  return {
    getSessionData: function (callback) {
      $http.get('/_session?key=x').success( function (res) {
       callback(res)
      })  
    } 
  }   
}])

从Flask返回值:

@app.route('/_session')
def get_from_session():
    key = request.params['key']
    return session.get(key)

在Controller中使用它:

app.controller(MainCtrl, ['$scope', 'Session', function ($scope, Session) {
  $scope.x = null
  Session.get( function (res) {
    $scope.x = res
  })
}])