python学习

This commit is contained in:
2019-08-06 15:21:15 +08:00
parent 54761c6262
commit 020f56d2d5
37 changed files with 910 additions and 605 deletions

View File

@@ -1,20 +1,183 @@
# -*- coding: utf-8 -*-
from flask import Blueprint
from flask import Blueprint,request
from common.libs.Helper import ops_render
from application import app
from common.libs.Helper import getFormatDate,iPagination,getDictFilterField,selectFilterObj
from common.models.stat.StatDailySite import StatDailySite
from common.models.stat.StatDailyFood import StatDailyFood
from common.models.stat.StatDailyMember import StatDailyMember
from common.models.member.Member import Member
from common.models.food.Food import Food
import datetime
route_stat = Blueprint( 'stat_page',__name__ )
@route_stat.route( "/index" )
def index():
return ops_render( "stat/index.html" )
now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailySite.query.filter(StatDailySite.date >= date_from) \
.filter(StatDailySite.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailySite.id.desc()).offset( offset ).limit( app.config['PAGE_SIZE'] ).all()
resp_data['list'] = list
resp_data['pages'] = pages
resp_data['current'] = 'index'
resp_data['search_con'] = {
'date_from':date_from,
'date_to':date_to
}
return ops_render( "stat/index.html",resp_data )
@route_stat.route( "/food" )
def food():
return ops_render( "stat/food.html" )
now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailyFood.query.filter(StatDailyFood.date >= date_from) \
.filter(StatDailyFood.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailyFood.id.desc()).offset(offset).limit(app.config['PAGE_SIZE']).all()
date_list = []
if list:
food_map = getDictFilterField(Food, Food.id, "id", selectFilterObj(list, "food_id"))
for item in list:
tmp_food_info = food_map[item.food_id] if item.food_id in food_map else {}
tmp_data = {
"date": item.date,
"total_count": item.total_count,
"total_pay_money": item.total_pay_money,
'food_info': tmp_food_info
}
date_list.append(tmp_data)
resp_data['list'] = date_list
resp_data['pages'] = pages
resp_data['current'] = 'food'
resp_data['search_con'] = {
'date_from': date_from,
'date_to': date_to
}
return ops_render( "stat/food.html",resp_data )
@route_stat.route( "/member" )
def memebr():
return ops_render( "stat/member.html" )
now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailyMember.query.filter(StatDailyMember.date >= date_from) \
.filter(StatDailyMember.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailyMember.id.desc()).offset(offset).limit(app.config['PAGE_SIZE']).all()
date_list = []
if list:
member_map = getDictFilterField( Member,Member.id,"id",selectFilterObj( list ,"member_id") )
for item in list:
tmp_member_info = member_map[ item.member_id ] if item.member_id in member_map else {}
tmp_data = {
"date":item.date,
"total_pay_money":item.total_pay_money,
"total_shared_count":item.total_shared_count,
'member_info':tmp_member_info
}
date_list.append( tmp_data )
resp_data['list'] = date_list
resp_data['pages'] = pages
resp_data['current'] = 'member'
resp_data['search_con'] = {
'date_from': date_from,
'date_to': date_to
}
return ops_render( "stat/member.html",resp_data )
@route_stat.route( "/share" )
def share():
return ops_render( "stat/share.html" )
now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailySite.query.filter(StatDailySite.date >= date_from) \
.filter(StatDailySite.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailySite.id.desc()).offset(offset).limit(app.config['PAGE_SIZE']).all()
resp_data['list'] = list
resp_data['pages'] = pages
resp_data['current'] = 'food'
resp_data['search_con'] = {
'date_from': date_from,
'date_to': date_to
}
return ops_render( "stat/share.html",resp_data )