from collections import defaultdict, OrderedDict
from datetime import datetime, timedelta
from flask import Blueprint, render_template, jsonify, session, request
from pyecharts.charts import Bar, Line, Pie, Scatter, Geo, Timeline
from pyecharts import options as opts
from pyecharts.globals import ChartType, ThemeType
from pyecharts.options import InitOpts
from main import inject_article_type, inject_tools_type
from model.article import Article
from model.chatroom import Message
from model.comment import Comment
from model.favorite import Favorite
from model.tb_follow import Follow
from model.tools import Tools
from model.user_shezhi import Shezhi
from model.users import Users
py_echarts = Blueprint('py_echarts', __name__)
from flask import Flask, render_template
# 获取文章类型和对应数量的字典
def get_article_type_counts():
article = Article() # 创建Article类的实例
article_types = inject_article_type()['article_type']
type_counts = {}
# 遍历所有文章类型
for type_key, type_name in article_types.items():
# 调用count_by_type函数获取每种类型的数量
count = article.count_by_type(type_key)
# 将类型和数量添加到字典中
type_counts[type_name] = count
return type_counts
def pie_rosetype_admin() -> Pie:
type_counts = get_article_type_counts() # 获取文章类型和对应数量的字典
labels = list(type_counts.keys()) # 获取标签(文章类型名称)
values = list(type_counts.values()) # 获取值(对应数量)
c = (
Pie()
.add(
"",
list(zip(labels, values)),
radius=["30%", "70%"],
center=["50%", "50%"],
rosetype="area",
)
)
return c
@py_echarts.route("/py_echarts/pie-article-admin")
def get_pie_chart_admin():
c = pie_rosetype_admin()
return c.dump_options_with_quotes()
# 用户的文章条形图
@py_echarts.route("/py_echarts/bar-article-user", methods=["POST", "GET"])
def get_bar_chart_user():
userid = request.form.get("userid")
article = Article()
favorite = Favorite()
comment = Comment()
favorite_count = favorite.query_my_favorite_count(userid)
favorited_count = favorite.query_my_article_favorited_count(userid)
article_count = article.get_count_user_except_drafted(userid)
drafted_count = article.get_count_user_drafted(user_id=userid)
comment_count = comment.query_comments_count_by_userid(userid)
commented_count = comment.query_comments_count_by_articleid(userid)
read_count = article.get_readcount_by_user(userid)
recommend_count = article.query_recommend_count_by_user(userid)
hide_count = article.query_hide_count_by_user(userid)
# 设置条形图的标签和值
bar = (
Bar()
.add_xaxis(
["收藏数", "被收藏数", "文章数", "草稿数", "评论数", "被评论数", "阅读数", "推荐数", "隐藏数"]) # x轴标签
.add_yaxis("用户文章信息",
[favorite_count, favorited_count, article_count, drafted_count, comment_count, commented_count,
read_count, recommend_count, hide_count]
, itemstyle_opts=opts.ItemStyleOpts(color="#749f83")) # y轴值,对应上面的标签
)
return bar.dump_options_with_quotes()
# 用户的关注条形图
@py_echarts.route("/py_echarts/bar-followed-user", methods=["POST", "GET"])
def get_bar_followed_user():
userid = request.form.get("userid")
follow = Follow()
follow_count = follow.get_follow_by_userid_count(userid)
followed_count = follow.get_followed_user_count(userid)
mutal_follow_count = follow.get_mutal_follow_count(userid)
# 设置条形图的标签和值
bar = (
Bar()
.add_xaxis(
["关注用户数量", "被关注数量", "互相关注数量"]) # x轴标签
.add_yaxis("用户文章信息",
[follow_count, followed_count, mutal_follow_count]
, itemstyle_opts=opts.ItemStyleOpts(color="#008000")) # y轴值,对应上面的标签
)
return bar.dump_options_with_quotes()
# 用户的交流条形图
@py_echarts.route("/py_echarts/bar-communicate-user", methods=["POST", "GET"])
def get_bar_communicate_user():
userid = request.form.get("userid")
message = Message()
message_duo_count = message.get_messagesduo_user_count(userid)
message_one_count = message.get_messagesone_user_count(userid)
sixin_count = message.get_sixin_user_count(userid)
# 设置条形图的标签和值
bar = (
Bar()
.add_xaxis(
["公共聊天数量", "一对一聊天数量", "私信数量"]) # x轴标签
.add_yaxis("用户交流信息",
[message_duo_count, message_one_count, sixin_count]
, itemstyle_opts=opts.ItemStyleOpts(color="#FF0000")) # y轴值,对应上面的标签
)
return bar.dump_options_with_quotes()
# 网站的交流条形图
@py_echarts.route("/py_echarts/bar-communicate-admin", methods=["POST", "GET"])
def get_bar_communicate_admin():
message = Message()
message_duo_count = message.get_messagesduo_all_count()
message_one_count = message.get_messagesone_all_count()
message_zong_count = message.get_messages_all_count()
# 设置条形图的标签和值
bar = (
Bar()
.add_xaxis(
["公共聊天数量", "一对一聊天数量", "信息总量"]) # x轴标签
.add_yaxis("网站交流信息",
[message_duo_count, message_one_count, message_zong_count]
, itemstyle_opts=opts.ItemStyleOpts(color="#FF0000")) # y轴值,对应上面的标签
)
return bar.dump_options_with_quotes()
# 网站的文章条形图
@py_echarts.route("/py_echarts/bar-article-admin")
def get_bar_chart_admin():
article = Article()
favorite = Favorite()
comment = Comment()
article_count = article.get_count_all_except_drafted()
drafted_count = article.get_count_all_drafted()
favorited_count = favorite.query_all_favorited_count()
# read_count = article.get_readcount_by_all()
hide_count = article.query_hide_count_by_all()
recommend_count = article.query_recommend_count_by_all()
comment_count = comment.query_comments_count_by_all()
# 设置条形图的标签和值
bar = (
Bar()
.add_xaxis(
["文章总量", "草稿总量", "被收藏文章总量", "被隐藏文章总量", "被推荐文章总量",
"评论总量"]) # x轴标签
.add_yaxis("用户文章信息",
[article_count, drafted_count, favorited_count, hide_count, recommend_count,
comment_count]
, itemstyle_opts=opts.ItemStyleOpts(color="#749f83")) # y轴值,对应上面的标签
)
return bar.dump_options_with_quotes()
# 用户的文章饼图
@py_echarts.route("/py_echarts/pie-article-user", methods=['POST', "GET"])
def get_pie_chart_user():
userid = request.form.get("userid")
article = Article() # 创建Article类的实例
article_types = inject_article_type()['article_type']
type_counts = {}
# 遍历所有文章类型
for type_key, type_name in article_types.items():
# 调用count_by_type_user函数获取每种类型的数量
count = article.count_by_type_user(type_key, userid)
# 将类型和数量添加到字典中
type_counts[type_name] = count
labels = list(type_counts.keys()) # 获取标签(文章类型名称)
values = list(type_counts.values()) # 获取值(对应数量)
c = (
Pie()
.add(
"",
list(zip(labels, values)),
radius=["30%", "70%"],
center=["50%", "50%"],
rosetype="area",
)
)
return c.dump_options_with_quotes()
# 用户的工�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
一个使用flask+bootstrap为框架开发的一个小型的学习网站,功能有待完善 (2000个子文件)
AUTHORS 6KB
style.css 282KB
bootstrap.css 261KB
style.min.css 260KB
style_chat.css 194KB
bootstrap4.min.css 158KB
weather-icons-wind.min.css 142KB
weather-icons-wind.css 142KB
materialdesignicons.min.css 85KB
material-design-iconic-font.css 83KB
editormd.css 76KB
materialdesignicons.min.css 76KB
material-design-iconic-font.min.css 69KB
emojify.css 68KB
animate.css 65KB
editormd.min.css 60KB
editormd.preview.css 55KB
fontawesome-all.css 45KB
editormd.preview.min.css 44KB
fontawesome.css 43KB
fontawesome-all.css 43KB
ueditor.css 43KB
fontawesome.css 41KB
font-awesome.css 37KB
fontawesome-all.min.css 36KB
fontawesome.min.css 35KB
ie7.css 35KB
fontawesome-all.min.css 35KB
ueditor.min.css 34KB
fontawesome.min.css 33KB
weather-icons.css 31KB
font-awesome.min.css 30KB
ambiance.css 26KB
weather-icons.min.css 23KB
jquery-confirm.min.css 22KB
video-js.css 21KB
image.css 18KB
open-iconic-foundation.css 16KB
themify-icons.css 16KB
style.css 15KB
video.css 15KB
attachment.css 14KB
open-iconic.css 14KB
video-js.min.css 11KB
open-iconic-bootstrap.css 11KB
style.css 11KB
codemirror.css 8KB
font.css 7KB
shCoreDefault.css 7KB
biji.css 6KB
codemirror.min.css 5KB
mdn-like.css 5KB
solarized.css 5KB
mymodal.css 5KB
font-css.css 4KB
scrawl.css 4KB
悬浮框.css 3KB
merge.css 3KB
lbt.css 3KB
lint.css 3KB
codemirror.css 3KB
xq-dark.css 3KB
charts.css 3KB
background.css 2KB
lesser-dark.css 2KB
pastel-on-dark.css 2KB
xq-light.css 2KB
tomorrow-night-eighties.css 2KB
editormd.logo.css 2KB
erlang-dark.css 2KB
zenburn.css 2KB
side.css 2KB
twilight.css 2KB
midnight.css 2KB
vibrant-ink.css 2KB
mbo.css 2KB
base16-dark.css 2KB
base16-light.css 2KB
tern.css 2KB
3024-night.css 2KB
paraiso-dark.css 2KB
paraiso-light.css 2KB
login.css 2KB
emotion.css 2KB
tomorrow-night-bright.css 2KB
3024-day.css 2KB
weather-icons-core.css 2KB
blackboard.css 2KB
dialogbase.css 2KB
music.css 2KB
colorforth.css 2KB
editormd.logo.min.css 2KB
the-matrix.css 2KB
yj.css 2KB
night.css 2KB
rubyblue.css 2KB
monokai.css 1KB
cobalt.css 1KB
simplescrollbars.css 1KB
edittable.css 1KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
天天501
- 粉丝: 611
- 资源: 5914
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- c++ 肉鸽游戏 Slime-Hunter
- 前端分析-202307110078
- jsp高校学生考勤管理系统设计与实现(源代码+lw).zip
- 2023-04-06-项目笔记 - 第二百六十一阶段 - 4.4.2.259全局变量的作用域-259 -2025.09.19
- CSDN独家首发!万字长文,YOLOv5_v7_v8算法模型yaml文件史上最详细解析与教程!.mhtml
- 2023-04-06-项目笔记 - 第二百六十一阶段 - 4.4.2.259全局变量的作用域-259 -2025.09.19
- 网络设备开局配置生成器1.1.6.2正式版.rar
- 教程课件-C#教程-编程教学
- 梦幻西游道人j240919
- 小程序&预约报名&运动荟小程序(源码+截图+源码导入教程和视频).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功