我是一个初学者,所以我甚至不知道这样做的最佳方式或者我想要做什么,但是我正在制作一个事件发布应用程序,它将有一个标题像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是使用日历模块并提出每个日期的星期几。将此信息提供给后端的最佳方法是什么?
答案 0 :(得分: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
});
};
}]);