wordpress 基础建站,软件工程考研难度大吗,网站开发培训班多少报名费,php网站服务器搭建在这节课中#xff0c;我们将选择一个小项目并完成它。为了综合运用前面所学的知识#xff0c;我们选择构建一个简单的Web应用#xff0c;该应用将包含数据分析和展示功能。我们将使用Flask框架和Pandas库来处理数据#xff0c;并将结果展示在Web页面上。
项目#xff1a…在这节课中我们将选择一个小项目并完成它。为了综合运用前面所学的知识我们选择构建一个简单的Web应用该应用将包含数据分析和展示功能。我们将使用Flask框架和Pandas库来处理数据并将结果展示在Web页面上。
项目简单的电影数据分析和展示应用
这个项目的目标是创建一个Web应用用户可以上传包含电影信息的CSV文件应用将分析这些数据并展示结果。我们将使用Pandas进行数据分析并使用Flask构建Web接口。
项目结构
首先设定项目结构如下
movie_analysis/app.pytemplates/upload.htmlanalysis.htmlstatic/style.css1. 创建Flask应用
首先定义Flask应用并添加上传和展示页面的路由。
示例创建Flask应用
from flask import Flask, render_template, request, redirect, url_for, flash
import pandas as pd
import osapp Flask(__name__)
app.secret_key supersecretkey
UPLOAD_FOLDER uploads
if not os.path.exists(UPLOAD_FOLDER):os.makedirs(UPLOAD_FOLDER)
app.config[UPLOAD_FOLDER] UPLOAD_FOLDERapp.route(/)
def index():return render_template(upload.html)app.route(/upload, methods[POST])
def upload_file():if file not in request.files:flash(No file part)return redirect(request.url)file request.files[file]if file.filename :flash(No selected file)return redirect(request.url)if file:filepath os.path.join(app.config[UPLOAD_FOLDER], file.filename)file.save(filepath)return redirect(url_for(analyze, filenamefile.filename))return redirect(request.url)app.route(/analyze/filename)
def analyze(filename):filepath os.path.join(app.config[UPLOAD_FOLDER], filename)df pd.read_csv(filepath)# 数据分析num_movies len(df)avg_rating df[rating].mean()top_movies df.nlargest(10, rating)[[title, rating]]return render_template(analysis.html, num_moviesnum_movies, avg_ratingavg_rating, top_moviestop_movies)if __name__ __main__:app.run(debugTrue)2. 创建模板文件
在templates目录中创建以下模板文件
upload.html
!-- templates/upload.html --
!DOCTYPE html
html
headtitleUpload Movie Data/titlelink relstylesheet typetext/css href{{ url_for(static, filenamestyle.css) }}
/head
bodyh1Upload Movie Data/h1form action{{ url_for(upload_file) }} methodpost enctypemultipart/form-datalabel forfileChoose CSV file:/labelinput typefile idfile namefilebutton typesubmitUpload/button/form{% with messages get_flashed_messages() %}{% if messages %}ul{% for message in messages %}li{{ message }}/li{% endfor %}/ul{% endif %}{% endwith %}
/body
/htmlanalysis.html
!-- templates/analysis.html --
!DOCTYPE html
html
headtitleMovie Data Analysis/titlelink relstylesheet typetext/css href{{ url_for(static, filenamestyle.css) }}
/head
bodyh1Movie Data Analysis/h1pNumber of Movies: {{ num_movies }}/ppAverage Rating: {{ avg_rating }}/ph2Top 10 Movies/h2tabletrthTitle/ththRating/th/tr{% for movie in top_movies.itertuples() %}trtd{{ movie.title }}/tdtd{{ movie.rating }}/td/tr{% endfor %}/tablea href{{ url_for(index) }}Upload another file/a
/body
/html3. 创建静态文件
在static目录中创建style.css文件
/* static/style.css */
body {font-family: Arial, sans-serif;background-color: #f0f0f0;margin: 0;padding: 0;
}
h1, h2 {color: #333;
}
form {margin-top: 20px;
}
form label {display: block;margin-bottom: 5px;
}
form input[typefile] {margin-bottom: 10px;
}
form button {padding: 5px 10px;background-color: #0066cc;color: white;border: none;cursor: pointer;
}
form button:hover {background-color: #004080;
}
table {width: 100%;border-collapse: collapse;margin-top: 20px;
}
table, th, td {border: 1px solid #ddd;
}
th, td {padding: 10px;text-align: left;
}
th {background-color: #f2f2f2;
}4. 运行应用
将上面的代码保存到相应的文件中然后运行app.py
python app.py访问以下URL
http://127.0.0.1:5000/显示上传页面上传一个包含电影数据的CSV文件文件应包含至少两列title电影标题和rating评分上传后将自动跳转到分析页面显示电影数据分析结果
这个项目展示了如何构建一个简单的Web应用用户可以上传数据文件应用将分析数据并展示结果。通过这个案例你可以深入理解和掌握Flask和Pandas的结合使用以及如何构建一个实用的Web应用。继续加油学习Python会越来越有趣和有用