from flask import Flask
from flask import request, redirect
from flask import render_template, url_for
from flask_paginate import Pagination
from sqlalchemy import create_engine,Column,Integer,SmallInteger,String
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
from list_data import select_score, select_showtime, select_genres, select_areas, film_data
from genres import show_genres
from areas import show_areas
from showtime import show_showtime
from score import show_score
from timeline_score import show_score_top
from timeline_comment import show_comment_top
from select_showtime import select_showtime
from select_showtime import showtime_group
from film_search import film_search
app = Flask(__name__)
app.jinja_env.auto_reload = True
app.config['TEMPLATES_AUTO_RELOAD'] = True
#初始化数据库连接
engine = create_engine("mysql+pymysql://root:123456@localhost:3306/douban?charset=utf8",echo = True)
#创建缓存对象
Session =sessionmaker(bind=engine)
session =Session
#声明基类
Base = declarative_base()
#定义Film对象
#基于这个基类来创建我们的自定义类,一个类就是一个数据库表;
class Film(Base):
#表的名字
__tablename__= 'tb_film'
#表的结构
id = Column(Integer,primary_key=True,autoincrement=True)
url =Column(String(250))
filmname =Column(String(50))
score =Column(String)
comments =Column(Integer)
showtime =Column(Integer)
genres =Column(String(20))
areas =Column(String(20))
actors =Column(String(50))
directors =Column(String(50))
scriptwriters =Column(String(50))
@app.route('/')
def index():
# return render_template('pages/echarts/e1.html')
# return render_template('index.html')
return render_template('login.html')
@app.route('/welcome')
def welcome():
return render_template('pages/welcome.html')
@app.route("/page_none")
def page_none():
return render_template('page_none')
# 验证用户名和密码
@app.route('/login', methods=['POST'])
@app.route('/index')
def login():
# 需要从request对象读取表单内容:
if request.form['username'] == 'admin' and request.form['password'] == '123456':
return render_template('index.html')
# 表单list
@app.route("/list")
@app.route("/list/")
def list(limit=10):
# 列表属性
t_low = select_score()[0]
t_high = select_score()[1]
t_showtime = select_showtime()
t_genres = select_genres()
t_areas = select_areas()
# 分页
# limit = 15
page = int(request.args.get("page", 1))
start = (page - 1) * limit
if request.args.get("low") or request.args.get("high") or request.args.get("showtime") or request.args.get("areas") or request.args.get("genres") or request.args.get("filmname"):
# 参数选择
r_low = request.args.get("low")
r_high = request.args.get("high")
r_showtime = request.args.get("showtime")
r_genres = request.args.get("genres")
r_areas = request.args.get("areas")
r_filmname = request.args.get("filmname")
# 返回数据
print("参数:{},{},{},{},{}".format(r_low, r_high, r_showtime, r_genres, r_areas,r_filmname))
print("参数1:{}".format(type(r_low)))
print("参数2:{}".format(len(r_low)))
r_films = film_data(low=r_low, high=r_high, showtime=r_showtime, genres=r_genres, areas=r_areas, filmname=r_filmname)[0]
r_row = film_data(low=r_low, high=r_high, showtime=r_showtime, genres=r_genres, areas=r_areas, filmname=r_filmname)[1]
# 分页
r_end = page * limit if r_row > page * limit else r_row
r_paginate = Pagination(page=page, total=r_row)
r_ret = r_films[start:r_end]
return render_template('pages/order/list.html', low=t_low, high=t_high, showtime=t_showtime, genres=t_genres,
areas=t_areas, films=r_ret, row=r_row,paginate=r_paginate)
else:
# 返回数据
films = film_data()[0]
row = film_data()[1]
end = page * limit if row > page * limit else row
paginate = Pagination(page=page, total=row)
ret=films[start:end]
print("res:{}".format(ret))
return render_template('pages/order/list.html', low=t_low, high=t_high, showtime=t_showtime, genres=t_genres,
areas=t_areas, films=ret,row=row, paginate=paginate)
# 矩形图e1
@app.route("/e1",methods=['GET'])
def e1():
return render_template('pages/echarts/e1.html')
@app.route("/genres")
def genres():
show_genres()
return render_template('pages/iframes/genres.html')
# 漏斗图e2
@app.route("/e2",methods=['GET'])
def e2():
return render_template('pages/echarts/e2.html')
@app.route("/areas")
def areas():
show_areas()
return render_template('pages/iframes/areas.html')
# 折线图e3
@app.route("/e3",methods=['GET'])
def e3():
return render_template('pages/echarts/e3.html')
@app.route("/showtime")
def showtime():
show_showtime()
return render_template('pages/iframes/showtime.html')
# 折线图e4
@app.route("/e4",methods=['GET'])
def e4():
return render_template('pages/echarts/e4.html')
@app.route("/score")
def score():
show_score()
return render_template('pages/iframes/score.html')
# 时间轴图e5
@app.route("/e5",methods=['GET'])
def e5():
return render_template('pages/echarts/e5.html', switch_url=url_for('page_none'))
@app.route("/switches")
@app.route("/switches/")
def choose():
if request.args.get("switch") == "":
return redirect("/e5")
elif request.args.get("switch") == "评分":
show_score_top()
return render_template('pages/echarts/e5.html', switch_url=url_for('scores'))
elif request.args.get("switch") == "评论人数":
show_comment_top()
return render_template('pages/echarts/e5.html', switch_url=url_for('comments'))
@app.route("/scores")
def scores():
return render_template('pages/iframes/score_top.html')
@app.route("/comments")
def comments():
return render_template('pages/iframes/comment_top.html')
# 饼状图e6
@app.route("/e6",methods=['GET'])
def e6():
showtime=select_showtime()
return render_template('pages/echarts/e6.html',showtime=showtime, showtime_url=url_for('page_none'))
@app.route("/groups")
@app.route("/groups/")
def shows():
if request.args.get("showtime") == "":
return redirect("/e6")
else:
showtime = select_showtime()
print(showtime)
showyear = int(request.args.get("showtime"))
showtime_group(showyear)
return render_template('pages/echarts/e6.html', showtime=showtime, group_url=url_for('group_url'))
@app.route("/group_url")
def group_url():
return render_template('pages/iframes/showtime_group.html')
# 词云图e7
@app.route("/e7",methods=['GET'])
def e7():
return render_template('pages/echarts/e7.html', switch_url=url_for('page_none'))
@app.route("/searchs")
@app.route("/searchs/")
def searchs():
if request.args.get("search") == "" or request.args.get("cut") == "":
return redirect("/e7")
else:
search = request.args.get("search")
cut = int(request.args.get("cut"))
film_search(search, cut)
return render_template('pages/echarts/e7.html', search_url=url_for('search_url'))
@app.route("/search_url")
def search_url():
return render_template('pages/iframes/film_search.html')
if __name__ == '__main__':
app.run(DEBUG=True)
没有合适的资源?快使用搜索试试~ 我知道了~
基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目)
共173个文件
gif:75个
html:24个
js:24个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 10 浏览量
2024-10-28
10:51:47
上传
评论
收藏 1.3MB ZIP 举报
温馨提示
基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目),该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目)基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目)基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目)基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目)基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目)基于python+flask+mysql实现的豆瓣电
资源推荐
资源详情
资源评论
收起资源包目录
基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库(毕设项目) (173个子文件)
layui.css 59KB
layer.css 14KB
weadmin.css 12KB
layui.mobile.css 10KB
laydate.css 7KB
code.css 1KB
font.css 505B
豆瓣电影链接.csv 93KB
豆瓣电影TOP250链接.csv 10KB
iconfont.eot 48KB
iconfont.eot 39KB
59.gif 10KB
22.gif 10KB
24.gif 8KB
13.gif 7KB
16.gif 7KB
39.gif 6KB
64.gif 6KB
63.gif 6KB
50.gif 6KB
loading-0.gif 6KB
4.gif 6KB
1.gif 5KB
42.gif 5KB
71.gif 5KB
21.gif 5KB
20.gif 5KB
29.gif 5KB
70.gif 4KB
5.gif 4KB
17.gif 4KB
27.gif 4KB
9.gif 4KB
44.gif 4KB
11.gif 4KB
8.gif 4KB
3.gif 4KB
23.gif 4KB
34.gif 4KB
41.gif 4KB
38.gif 4KB
65.gif 3KB
32.gif 3KB
45.gif 3KB
7.gif 3KB
12.gif 3KB
26.gif 3KB
60.gif 3KB
2.gif 3KB
40.gif 3KB
25.gif 3KB
19.gif 3KB
66.gif 3KB
18.gif 3KB
46.gif 3KB
10.gif 3KB
28.gif 3KB
51.gif 3KB
57.gif 3KB
67.gif 3KB
0.gif 3KB
48.gif 3KB
43.gif 3KB
30.gif 2KB
61.gif 2KB
33.gif 2KB
69.gif 2KB
14.gif 2KB
47.gif 2KB
36.gif 2KB
49.gif 2KB
58.gif 2KB
6.gif 2KB
54.gif 2KB
53.gif 2KB
56.gif 2KB
62.gif 2KB
31.gif 2KB
55.gif 2KB
35.gif 2KB
15.gif 2KB
loading-2.gif 2KB
37.gif 1KB
68.gif 1KB
52.gif 777B
loading-1.gif 701B
.gitattributes 93B
score_top.html 838KB
comment_top.html 837KB
showtime.html 38KB
score.html 27KB
areas.html 13KB
showtime_group.html 10KB
index.html 9KB
index_copy.html 9KB
film_search.html 9KB
list.html 8KB
add.html 7KB
genres.html 7KB
genres.html 7KB
共 173 条
- 1
- 2
资源评论
yava_free
- 粉丝: 3653
- 资源: 1458
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Java的DVD租赁管理系统.zip
- (源码)基于Arduino的模型铁路控制系统.zip
- (源码)基于C语言STM32F10x框架的温湿度监控系统.zip
- (源码)基于Spring Boot的极简易课堂对话系统.zip
- (源码)基于JSP+Servlet+MySQL的学生管理系统.zip
- (源码)基于ESP8266的蜂箱监测系统.zip
- (源码)基于Spring MVC和Hibernate框架的学校管理系统.zip
- (源码)基于TensorFlow 2.3的高光谱水果糖度分析系统.zip
- (源码)基于Python框架库的知识库管理系统.zip
- (源码)基于C++的日志管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功