"""
创建时间 : 2018/06/17
版本号 : V1
文档名 : account.py
编辑人 : he_wm
作 用 : 用户上传代码处理相关
源存储位置 : css_v1\\css_v1\\views\\account.py
修改及增加功能记录 :
修改时间 :
1、2018/04/02:
2、
增加功能时间 :
1、
2、
"""
import os
import json
import uuid
import shutil
import datetime
from flask import Blueprint, render_template, request, redirect, session
from werkzeug.utils import secure_filename
from css_v1.utils import helper
ind = Blueprint('ind', __name__)
# 通用检查是否登录
@ind.before_request
def inner():
user_info = session.get('user_info')
if not user_info:
return redirect('/login')
return None
# @ind.route('/index', methods=['GET', 'POST'])
# def index():
# if request.method == 'GET':
# sql = 'select * from code'
# helper.Manage
# cursor.execute(sql)
# conn.commit()
# cursor.close()
# conn.close()
# result = cursor.fetchall()
# print(result)
# return render_template('index.html', **{'result_list': result})
@ind.route('/detail/<int:nid>')
def detail(nid):
"""
代码上传个人详情页
:param nid: 与用户关联的user_id
:return:
"""
if request.method == 'GET':
sql = 'select id,line,ctime from code WHERE user_id=%s'
result_list = helper.fetch_all(sql, [nid])
print(result_list)
lis_time = []
lis_lin = []
for item in result_list:
lis_time.append(str(item['ctime']))
lis_lin.append(int(item['line']))
lis_time = json.dumps(lis_time)
lis_lin = json.dumps(lis_lin)
return render_template('detail.html', **{'result_list': result_list, "lis_time": lis_time, "lis_lin": lis_lin})
@ind.route('/upload', methods=['GET', 'POST'])
def uplosd():
"""
上传代码函数
:return:
"""
if request.method == 'GET':
return render_template("upload.html")
# 接收用户上传的文件
file = request.files.get('file')
path, ext = file.filename.rsplit('.', maxsplit=1)
# 检查是否是.zip压缩的文件
if ext != 'zip':
return '仅支持上传.zip格式文件'
# 存储到本地
uplosd_path = os.path.join('funk.config.root_path', 'files', str(uuid.uuid4()))
# 解压文件
shutil._unpack_zipfile(file.stream, uplosd_path)
total_num = 0
"""
dirpath:当前所处位置路径
dirnames:当前所处位置有那几个文件夹
filenames:当前所处位置有哪些文件
"""
for (dirpath, dirnames, filenames) in os.walk(uplosd_path):
for filename in filenames:
file_path = os.path.join(dirpath, filename)
file_path_ext = file_path.rsplit('.', maxsplit=1)
# 仅计算.py文件的行数
if len(file_path_ext) != 2:
continue
if file_path_ext[1] != 'py':
continue
line_num = 0
with open(file_path, mode='rb') as f:
for line in f:
if line.strip().startswith(b'#'):
continue
line_num += 1
total_num += line_num
ctime = datetime.date.today()
sql = 'select id from code WHERE ctime=%s and user_id = %s'
ret = helper.fetch_one(sql, (ctime, session['user_info']['id']))
if ret:
return "今日已经上传"
sql = 'insert into code(line, ctime,user_id) VALUES (%s,%s,%s)'
helper.insert(sql, (total_num, ctime, session['user_info']['id']))
return redirect('/user_list')
@ind.route('/user_list')
def user_list():
"""
所有用户上传代码详情主页
:return:
"""
sql = 'SELECT id,user,nick from username'
data_list = helper.fetch_all(sql, [])
sql1 = 'SELECT user,SUM(line) FROM code INNER JOIN username ON username.id = code.user_id GROUP BY user_id'
data_list1 = helper.fetch_all(sql1, [])
print(data_list1)
lis_lin = []
for item in data_list1:
data = []
data.append(str(item['user']))
data.append(int(item['SUM(line)']))
lis_lin.append(data)
lis_lin = json.dumps(lis_lin)
print(lis_lin)
return render_template('user_list.html', data_list=data_list, lis_lin=lis_lin)
没有合适的资源?快使用搜索试试~ 我知道了~
基于flask写的一个统计用户每日代码量的一个项目.zip
共508个文件
js:253个
map:104个
png:28个
需积分: 5 0 下载量 44 浏览量
2023-09-28
12:34:48
上传
评论
收藏 5.23MB ZIP 举报
温馨提示
基于flask写的一个统计用户每日代码量的一个项目
资源推荐
资源详情
资源评论
收起资源包目录
基于flask写的一个统计用户每日代码量的一个项目.zip (508个子文件)
style.css 176KB
bootstrap.min.css 115KB
font-awesome.css 22KB
dark-unica.css 15KB
sand-signika.css 14KB
grid-light.css 14KB
highcharts.css 14KB
googleapis.css 13KB
bars.css 13KB
clndr.css 10KB
icon-font.min.css 7KB
popuo-box.css 7KB
vroom.css 4KB
bootstrap-markdown.min.css 3KB
fabochart.css 2KB
chocolat.css 2KB
atlas.css 902B
jqvmap.css 848B
weathericons-regular-webfont.eot 41KB
fontawesome-webfont.eot 37KB
glyphicons-halflings-regular.eot 20KB
digital-7_italic-webfont.eot 12KB
digital-7-webfont.eot 10KB
digital-7_mono-webfont.eot 10KB
closew.gif 70B
leftw.gif 68B
rightw.gif 67B
layout.html 11KB
login.html 4KB
user_list.html 2KB
detail.html 2KB
upload.html 978B
index.html 95B
css_v1.iml 398B
p3.jpg 77KB
p4.jpg 69KB
p6.jpg 57KB
pic3.jpg 57KB
p2.jpg 55KB
p5.jpg 53KB
p1.jpg 52KB
business-1031754_640.jpg 44KB
skies.jpg 42KB
admin1.jpg 17KB
admin.jpg 13KB
admin2.jpg 12KB
in10.jpg 12KB
in2.jpg 12KB
in4.jpg 12KB
in1.jpg 12KB
in9.jpg 11KB
in.jpg 11KB
in5.jpg 11KB
in3.jpg 11KB
1.jpg 10KB
in6.jpg 2KB
in11.jpg 2KB
in8.jpg 2KB
in7.jpg 2KB
highcharts.src.js 1.22MB
highcharts.src.js 1.15MB
jspdf.src.js 608KB
datamaps-all.js 519KB
protovis-d3.2.js 497KB
stock.src.js 311KB
stock.src.js 295KB
Chart.js 253KB
jspdf.js 223KB
highcharts.js 199KB
amcharts.js 194KB
highcharts.js 190KB
highcharts-more.src.js 173KB
highcharts-more.src.js 156KB
highcharts-3d.src.js 134KB
highcharts-3d.src.js 133KB
dygraph-combined.js 123KB
svg2pdf.src.js 110KB
boost.src.js 106KB
boost.src.js 105KB
canvg.src.js 100KB
accessibility.src.js 98KB
accessibility.src.js 98KB
moment-2.2.1.js 93KB
jquery-1.10.2.min.js 91KB
sunburst.src.js 91KB
sunburst.src.js 86KB
data.src.js 74KB
data.src.js 74KB
stock.js 68KB
stock.js 64KB
canvg.js 61KB
jquery.vmap.world.js 59KB
treemap.src.js 59KB
jquery.nicescroll.js 58KB
clndr.js 58KB
exporting.src.js 56KB
annotations.src.js 55KB
exporting.src.js 54KB
treemap.src.js 54KB
annotations.src.js 52KB
共 508 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
天天501
- 粉丝: 596
- 资源: 4666
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功