宠物出售的网站怎么做,沈阳淘宝网站建设,最近新闻头条,加工平台网站大家好#xff0c;我是python222_小锋老师#xff0c;看到一个不错的基于Python的影视数据可视化分析系统(Flaskecharts)#xff0c;分享下哈。
项目视频演示
【免费】基于Python的爱奇艺影视电影数据可视化分析系统(Flaskecharts) Python毕业设计_哔哩哔哩_bilibili
系统…大家好我是python222_小锋老师看到一个不错的基于Python的影视数据可视化分析系统(Flaskecharts)分享下哈。
项目视频演示
【免费】基于Python的爱奇艺影视电影数据可视化分析系统(Flaskecharts) Python毕业设计_哔哩哔哩_bilibili
系统展示 部分代码
!DOCTYPE html
html langenheadmeta charsetutf-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1, shrink-to-fitnometa namedescription contentmeta nameauthor contenttitle登陆页面/title!-- Custom fonts for this template--link href/static/vendor/fontawesome-free/css/all.min.css relstylesheet typetext/csslink hrefhttps://fonts.googleapis.com/css?familyNunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900irelstylesheet!-- Custom styles for this template--link href/static/css/sb-admin-2.min.css relstylesheet/headstyle.bg-gradient-primary {{#background: url(/static/img/小狗.jpg);#} background: url(/static/img/熊猫背景.jpg);background-position: center;background-size: cover;}.bg-login-image {background: url(/static/img/熊猫.jpg);background-position: center;background-size: cover;}body {margin: 10px;font-family: Nunito, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;font-size: 1rem;font-weight: 400;line-height: 1.5;color: #858796;text-align: left;background-color: #fff;}h1 {text-align: center;color: black;margin-top: 15px;}
/stylebody classbg-gradient-primarydiv classcontainer!-- Outer Row --div classrow justify-content-centerdiv classcol-xl-10 col-lg-12 col-md-9h1爱奇艺节目收视率可视化系统的设计与实现/h1div classcard o-hidden border-0 shadow-lg my-5div classcard-body p-0!-- Nested Row within Card Body --div classrowdiv classcol-lg-6 d-none d-lg-block bg-login-image/divdiv classcol-lg-6div classp-5div classtext-centerh1 classh4 text-gray-900 mb-4登陆/h1/divform classuser methodpost action/logindiv classform-groupinput typeemail nameemail classform-control form-control-useridexampleInputEmail aria-describedbyemailHelpplaceholder请输入邮箱/divdiv classform-groupinput typepassword namepassword classform-control form-control-useridexampleInputPassword placeholder请输入密码/divdiv classform-groupdiv classcustom-control custom-checkbox smallinput typecheckbox classcustom-control-input idcustomChecklabel classcustom-control-label forcustomCheck记住我/label/div/divbutton hrefindex.html classbtn btn-primary btn-user btn-block登陆/button/formhrdiv classtext-centera classsmall href/register跳转到注册页面/anbsp;nbsp;/div/div/div/div/div/div/div/div/div/body/htmlfrom flask import Flask, request, render_template, session, redirect, jsonify
from utils import query
from utils.getHomeData import *
from utils.getComments_cData import *
from utils.getActor_tData import *
from utils.getRate_tData import *
from utils.getHotness import *
from utils.getCommentData import *
from utils.getType_tData import *
from utils.getLikes import *
from utils.getHotness_duibi import *
from utils.getHotness_yuyue import *
import reapp Flask(__name__)
app.secret_key This is secret_key you know ?app.route(/login, methods[GET, POST])
def login():if request.method GET:return render_template(login.html)elif request.method POST:request.form dict(request.form)def filter_fn(item):return request.form[email] in itemusers query.querys(select * from user where email %s, [request.form[email]], select)filter_list list(filter(filter_fn, users))if len(filter_list):if request.form[password] filter_list[0][2]:session[email] request.form[email]return redirect(/home)# return render_template(error.html, message登陆成功)else:return render_template(error.html, message密码错误)else:return render_template(error.html, message不存在该用户)app.route(/loginout)
def loginout():session.clear()return redirect(/login)app.route(/register, methods[GET, POST])
def register():if request.method GET:return render_template(register.html)elif request.method POST:request.form dict(request.form)if request.form[password] ! request.form[passwordChecked]:return render_template(error.html, message两次密码不符合)def filter_fn(item):return request.form[email] in itemusers query.querys(select * from user, [], select)filter_list list(filter(filter_fn, users))if len(filter_list):return render_template(error.html, message该用户已被注册)else:query.querys(insert into user(email,password) values (%s,%s),[request.form[email], request.form[password]])return redirect(/login)app.route(/home, methods[GET, POST])
def home():email session.get(email)maxMovieLen, maxRate, maxCasts, maxHotness, maxTypes, maxComment getHomeData()typeEcharData getTypesEcharData()row, columns getRateEcharData()return render_template(index.html,emailemail,maxMovieLenmaxMovieLen,maxRatemaxRate,maxCastsmaxCasts,maxHotnessmaxHotness,maxTypesmaxTypes,maxCommentmaxComment,typeEcharDatatypeEcharData,rowrow,columnscolumns,)# 预约热度
app.route(/hotness_yuyue_t)
def hotness_yuyue_t():email session.get(email)row, columns getHotnessData_yuyueTop10()return render_template(hotness_yuyue_t.html,emailemail,rowrow,columnscolumns,)# 热度top10
app.route(/hotness_t)
def hotness_t():email session.get(email)row, columns getHotnessDataTop10()return render_template(hotness_t.html,emailemail,rowrow,columnscolumns,)# 讨论数
app.route(/comment_t)
def comment_t():email session.get(email)rowCasts, columnsCasts getCommentDataTop10()return render_template(comment_t.html,emailemail,rowCastsrowCasts,columnsCastscolumnsCasts)# 热度过万
app.route(/likes_t)
def likes_t():email session.get(email)rowCasts, columnsCasts getLikesDataTop10()return render_template(likes_t.html,emailemail,rowCastsrowCasts,columnsCastscolumnsCasts)# 网剧和电视剧热度对比
app.route(/hotness_duibi_t)
def hotness_duibi_t():email session.get(email)wangju_data, dianshiju_data getHotnessData_duibi() # 假设这样返回数据row_wangju, columns_wangju wangju_datarow_dianshiju, columns_dianshiju dianshiju_data# 将网剧和电视剧的数据都传递给模板return render_template(hotness_duibi_t.html,emailemail,wangju_titlesrow_wangju,wangju_hotnesscolumns_wangju,dianshiju_titlesrow_dianshiju,dianshiju_hotnesscolumns_dianshiju)# 评分
app.route(/rate_t/type, methods[GET, POST])
def rate_t(type):email session.get(email)typeList getAllTypes()row, columns getAllRateDataByType(type)return render_template(rate_t.html,emailemail,typeListtypeList,typetype,rowrow,columnscolumns,)# 三大类型
app.route(/type_t)
def type_t():email session.get(email)typesData_dianshiju getTypeData_dianshiju()typesData_zoyi getTypeData_zoyi()typesData_wangju getTypeData_wangju()return render_template(type_t.html,emailemail,typesData_dianshijutypesData_dianshiju,typesData_zoyitypesData_zoyi,typesData_wangjutypesData_wangju,)# 导演、演员
app.route(/actor_t)
def actor_t():email session.get(email)row, columns getDirectorsDataTop20()rowCasts, columnsCasts getCastsDataTop20()return render_template(actor_t.html,emailemail,rowrow,columnscolumns,rowCastsrowCasts,columnsCastscolumnsCasts)# 评论词云图
app.route(/comments_c, methods[GET, POST])
def comments_c():email session.get(email)if request.method GET:return render_template(comments_c.html, emailemail)else:resSrc, searchName getCommentsImage(dict(request.form)[searchIpt])return render_template(comments_c.html, emailemail, resSrcresSrc, searchNamesearchName)# 演员名词云图
app.route(/casts_c, methods[GET, POST])
def casts_c():email session.get(email)return render_template(casts_c.html, emailemail)app.route(/)
def allRequest():return redirect(/login)# 定义了一个 Flask 应用的全局前置请求处理器before request handler
# 它会在每次请求到达 Flask 应用之前运行
app.before_request
def before_requre():# 定义一个正则表达式模式匹配以 /static 开头的路径pat re.compile(r^/static)# 如果请求的路径匹配 /static 开头则不进行后续的检查直接返回# 这意味着静态文件的请求不会被后续的认证逻辑所拦截if re.search(pat, request.path):return# 如果请求的路径是 /login同样不进行后续的检查直接返回# 这允许用户直接访问登录页面而不需要先登录if request.path /login:return# 如果请求的路径是 /register同样不进行后续的检查直接返回# 假设 /register 是注册页面的路径允许用户直接访问注册页面if request.path /register:return# 尝试从 session 中获取用户的电子邮件地址email session.get(email)# 如果 session 中存在电子邮件地址即用户已登录if email:# 则不进行任何操作返回 None 表示继续处理该请求return None# 如果 session 中不存在电子邮件地址即用户未登录# 则重定向用户到登录页面 /loginreturn redirect(/login)if __name__ __main__:app.run()源码下载
链接https://pan.baidu.com/s/1V-ovZbb6Jhl6jWqFSoCBqg 提取码1234