2014-08-29 53 views
0

我是一个初学者,所以我甚至不知道最好的方法来做到这一点或什么叫我想要做什么,但我正在制作一个活动发布应用程序,其中包含月份和年份的标题,如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是使用日历模块,并拿出每个日期的星期几在哪一天。将这些信息提供给后端的最佳方法是什么?

回答

4

您将要使用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 
    }); 
}; 
}]); 
相关问题