【问题标题】:With Flask and Angular, how do I make $scope variables available to a python function使用 Flask 和 Angular,如何使 $scope 变量可用于 python 函数
【发布时间】:2014-08-29 03:00:31
【问题描述】:

我是一个初学者,所以我什至不知道执行此操作的最佳方法或如何称呼我正在尝试做的事情,但我正在制作一个事件发布应用程序,该应用程序将具有当月的标题和年如this jsfiddle

var calendar = angular.module('calendar', []);
calendar.controller('month_and_year', ['$scope', function ($scope) {
$scope.month = {{current_month}};
$scope.year = {{current_year}};
$scope.month_names = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
$scope.add_one = function () {
    if ($scope.month == 12) {
        $scope.year++;
        $scope.month = 1;
    } else {
        $scope.month++
    }
};
$scope.sub_one = function () {
    if ($scope.month == 1) {
        $scope.year--;
        $scope.month = 12;
    } else {
        $scope.month--
    }
};
}]);

我的 Python 的重要部分如下所示:

import datetime
now = datetime.datetime.now()
current_month=now.month
current_year=now.year

def get_days_for_dates(year):
    dates = calendar.Calendar().yeardayscalendar(year)
    days_of_week=   ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
    dates_list=[]
    days_list=[]
    for quarter in dates:
        for month in quarter:
            for week in month:
                for i in range(len(week)):
                    dates_list.append(week[i])
                    days_list.append(days_of_week[i])
    return days_list, dates_list

calendar_tuple = get_days_for_dates(current_year)

所以我的问题是我想在我的 Python 中使用 $scope.year,其中 current_year 是使用日历模块并得出每个日期在一周中的哪一天。将此信息发送到后端的最佳方法是什么?

【问题讨论】:

    标签: javascript python angularjs flask


    【解决方案1】:

    您将希望使用 AJAX 请求将数据返回给服务器。这有两部分:

    首先是在后端创建一个端点,它允许您发送请求并检索数据负载。

    @app.route('/day-lookup', method=['GET'])
    def day_lookup():
        year = request.args.get('year', None)
        # error handle here
    
        calendar_tuple = get_days_for_dates(year)
        # do something with it, return the list, etc.    
    

    第二部分是使用 Angular 发送数据并处理响应。

    var calendar = angular.module('calendar', []);
    calendar.controller('month_and_year', ['$scope', '$http', function ($scope, $http) {
    $scope.month = {{current_month}};
    $scope.year = {{current_year}};
    $scope.month_names = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    $scope.add_one = function () {
        if ($scope.month == 12) {
            $scope.year++;
            $scope.month = 1;
        } else {
            $scope.month++
        }
    };
    $scope.sub_one = function () {
        if ($scope.month == 1) {
            $scope.year--;
            $scope.month = 12;
        } else {
            $scope.month--
        }
    };
    $scope.send_year = function () {
        // Add the year as a parameter to GET request to your URL
        var url = "http://foo.com/?year=" + $scope.year;
        // Send info to the server, then handle the result
        $http.get(url).then(function (result) {
            // Do something with the result
        });
    };
    }]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      相关资源
      最近更新 更多