From 468455ebc402ace68716e1c1f863639f101d9e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=92=E9=85=92=E7=9A=84=E6=9D=8E=E7=99=BD?= <670939375@qq.com> Date: Wed, 3 Jul 2024 15:19:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=B1=95=E7=A4=BA=E9=A1=B5=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E3=80=91=E5=90=84=E7=A7=8D=E5=AD=90=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E6=98=BE=E7=A4=BA=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- views/page/page.py | 138 ++++++++ views/page/templates/hotWord.html | 494 +++++++++++++++++++++++++++ views/page/templates/index.html | 1 + views/page/templates/tableData.html | 215 ++++++++++++ views/page/templates/yuqingChar.html | 363 ++++++++++++++++++++ 5 files changed, 1211 insertions(+) create mode 100644 views/page/page.py create mode 100644 views/page/templates/hotWord.html create mode 100644 views/page/templates/index.html create mode 100644 views/page/templates/tableData.html create mode 100644 views/page/templates/yuqingChar.html diff --git a/views/page/page.py b/views/page/page.py new file mode 100644 index 0000000..4021fce --- /dev/null +++ b/views/page/page.py @@ -0,0 +1,138 @@ +from flask import Flask,session,render_template,redirect,Blueprint,request +from snownlp import SnowNLP +from utils.getHomePageData import * +from utils.getHotWordPageData import * +from utils.getTableData import * +from utils.getPublicData import getAllHotWords +from utils.getEchartsData import * +pb = Blueprint('page',__name__,url_prefix='/page',template_folder='templates') + +@pb.route('/home') +def home(): + username = session.get('username') + articleLenMax,likeCountMaxAuthorName,cityMax = getHomeTagsData() + commentsLikeCountTopFore = getHomeCommentsLikeCountTopFore() + xData,yData = getHomeArticleCreatedAtChart() + typeChart = getHomeTypeChart() + createAtChart = getHomeCommentCreatedChart() + # getUserNameWordCloud() + return render_template('index.html', + username=username, + articleLenMax=articleLenMax, + likeCountMaxAuthorName=likeCountMaxAuthorName, + cityMax=cityMax, + commentsLikeCountTopFore=commentsLikeCountTopFore, + xData=xData, + yData=yData, + typeChart=typeChart, + createAtChart=createAtChart + ) + +@pb.route('/hotWord') +def hotWord(): + username = session.get('username') + hotWordList = getAllHotWords() + defaultHotWord = hotWordList[0][0] + if request.args.get('hotWord'):defaultHotWord = request.args.get('hotWord') + hotWordLen = getHotWordLen(defaultHotWord) + xData,yData = getHotWordPageCreatedAtCharData(defaultHotWord) + sentences = '' + value = SnowNLP(defaultHotWord).sentiments + if value == 0.5: + sentences = '中性' + elif value > 0.5: + sentences = '正面' + elif value < 0.5: + sentences = '负面' + + comments = getCommentFilterData(defaultHotWord) + return render_template('hotWord.html', + username=username, + hotWordList=hotWordList, + defaultHotWord=defaultHotWord, + hotWordLen=hotWordLen, + sentences=sentences, + xData=xData, + yData=yData, + comments=comments + ) + +@pb.route('/tableData') +def tableData(): + username = session.get('username') + defaultFlag = False + if request.args.get('flag'):defaultFlag = True + tableData = getTableDataList(defaultFlag) + return render_template('tableData.html', + username=username, + tableData=tableData, + defaultFlag=defaultFlag + ) + +@pb.route('/articleChar') +def articleChar(): + username = session.get('username') + typeList = getTypeList() + defaultType = typeList[0] + if request.args.get('type'): defaultType = request.args.get('type') + xData,yData = getArticleCharLikeCount(defaultType) + x1Data,y1Data = getArticleCharCommentsLen(defaultType) + x2Data,y2Data = getArticleCharRepotsLen(defaultType) + return render_template('articleChar.html', + username=username, + typeList=typeList, + defaultType=defaultType, + xData=xData, + yData=yData, + x1Data=x1Data, + y1Data=y1Data, + x2Data=x2Data, + y2Data=y2Data + ) + +@pb.route('/ipChar') +def ipChar(): + username = session.get('username') + articleRegionData = getIPCharByArticleRegion() + commentRegionData = getIPCharByCommentsRegion() + return render_template('ipChar.html', + username=username, + articleRegionData=articleRegionData, + commentRegionData=commentRegionData + ) + +@pb.route('/commentChar') +def commentChar(): + username = session.get('username') + xData,yData = getCommentCharDataOne() + genderPieData = getCommentCharDataTwo() + return render_template('commentChar.html', + username=username, + xData=xData, + yData=yData, + genderPieData=genderPieData + ) + +@pb.route('/yuqingChar') +def yuqingChar(): + username = session.get('username') + xData,yData,bieData = getYuQingCharDataOne() + bieData1,bieData2 = getYuQingCharDataTwo() + x1Data,y1Data = getYuQingCharDataThree() + return render_template('yuqingChar.html', + username=username, + xData=xData, + yData=yData, + bieData=bieData, + bieData1=bieData1, + bieData2=bieData2, + x1Data=x1Data, + y1Data=y1Data + ) + +@pb.route('/articleCloud') +def articleCloud(): + username = session.get('username') + return render_template('articleContentCloud.html', + username=username + ) diff --git a/views/page/templates/hotWord.html b/views/page/templates/hotWord.html new file mode 100644 index 0000000..2cb738f --- /dev/null +++ b/views/page/templates/hotWord.html @@ -0,0 +1,494 @@ +{% extends 'base_page.html' %} +{% block title %} + 热词统计 +{% endblock %} + +{% block nav %} + +{% endblock %} +{% block content %} +
+<div class="form-group">
+ <label>Small</label>
+ <select class="form-control form-control-sm mb-3">
+ <option selected="">Open this select menu</option>
+ <option value="1">One</option>
+ <option value="2">Two</option>
+ <option value="3">Three</option>
+ </select>
+</div>
+<div class="form-group">
+ <label>Default</label>
+ <select class="form-control mb-3">
+ <option selected="">Open this select menu</option>
+ <option value="1">One</option>
+ <option value="2">Two</option>
+ <option value="3">Three</option>
+ </select>
+</div>
+<div class="form-group">
+ <label>Large</label>
+ <select class="form-control form-control-lg">
+ <option selected="">Open this select menu</option>
+ <option value="1">One</option>
+ <option value="2">Two</option>
+ <option value="3">Three</option>
+ </select>
+</div>
+
+<table id="datatable" class="table data-table table-striped table-bordered" >
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Position</th>
+ <th>Office</th>
+ <th>Age</th>
+ <th>Start date</th>
+ <th>Salary</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Tiger Nixon</td>
+ <td>System Architect</td>
+ <td>Edinburgh</td>
+ <td>61</td>
+ <td>2011/04/25</td>
+ <td>$320,800</td>
+ </tr>
+ <tr>
+ <td>Garrett Winters</td>
+ <td>Accountant</td>
+ <td>Tokyo</td>
+ <td>63</td>
+ <td>2011/07/25</td>
+ <td>$170,750</td>
+ </tr>
+ <tr>
+ <td>Ashton Cox</td>
+ <td>Junior Technical Author</td>
+ <td>San Francisco</td>
+ <td>66</td>
+ <td>2009/01/12</td>
+ <td>$86,000</td>
+ </tr>
+ <tr>
+ <td>Cedric Kelly</td>
+ <td>Senior Javascript Developer</td>
+ <td>Edinburgh</td>
+ <td>22</td>
+ <td>2012/03/29</td>
+ <td>$433,060</td>
+ </tr>
+ <tr>
+ <td>Airi Satou</td>
+ <td>Accountant</td>
+ <td>Tokyo</td>
+ <td>33</td>
+ <td>2008/11/28</td>
+ <td>$162,700</td>
+ </tr>
+ <tr>
+ <td>Brielle Williamson</td>
+ <td>Integration Specialist</td>
+ <td>New York</td>
+ <td>61</td>
+ <td>2012/12/02</td>
+ <td>$372,000</td>
+ </tr>
+ <tr>
+ <td>Herrod Chandler</td>
+ <td>Sales Assistant</td>
+ <td>San Francisco</td>
+ <td>59</td>
+ <td>2012/08/06</td>
+ <td>$137,500</td>
+ </tr>
+ <tr>
+ <td>Rhona Davidson</td>
+ <td>Integration Specialist</td>
+ <td>Tokyo</td>
+ <td>55</td>
+ <td>2010/10/14</td>
+ <td>$327,900</td>
+ </tr>
+ <tr>
+ <td>Colleen Hurst</td>
+ <td>Javascript Developer</td>
+ <td>San Francisco</td>
+ <td>39</td>
+ <td>2009/09/15</td>
+ <td>$205,500</td>
+ </tr>
+ <tr>
+ <td>Sonya Frost</td>
+ <td>Software Engineer</td>
+ <td>Edinburgh</td>
+ <td>23</td>
+ <td>2008/12/13</td>
+ <td>$103,600</td>
+ </tr>
+ <tr>
+ <td>Jena Gaines</td>
+ <td>Office Manager</td>
+ <td>London</td>
+ <td>30</td>
+ <td>2008/12/19</td>
+ <td>$90,560</td>
+ </tr>
+ <tr>
+ <td>Quinn Flynn</td>
+ <td>Support Lead</td>
+ <td>Edinburgh</td>
+ <td>22</td>
+ <td>2013/03/03</td>
+ <td>$342,000</td>
+ </tr>
+ <tr>
+ <td>Charde Marshall</td>
+ <td>Regional Director</td>
+ <td>San Francisco</td>
+ <td>36</td>
+ <td>2008/10/16</td>
+ <td>$470,600</td>
+ </tr>
+ <tr>
+ <td>Haley Kennedy</td>
+ <td>Senior Marketing Designer</td>
+ <td>London</td>
+ <td>43</td>
+ <td>2012/12/18</td>
+ <td>$313,500</td>
+ </tr>
+ <tr>
+ <td>Tatyana Fitzpatrick</td>
+ <td>Regional Director</td>
+ <td>London</td>
+ <td>19</td>
+ <td>2010/03/17</td>
+ <td>$385,750</td>
+ </tr>
+ <tr>
+ <td>Michael Silva</td>
+ <td>Marketing Designer</td>
+ <td>London</td>
+ <td>66</td>
+ <td>2012/11/27</td>
+ <td>$198,500</td>
+ </tr>
+ <tr>
+ <td>Paul Byrd</td>
+ <td>Chief Financial Officer (CFO)</td>
+ <td>New York</td>
+ <td>64</td>
+ <td>2010/06/09</td>
+ <td>$725,000</td>
+ </tr>
+ <tr>
+ <td>Gloria Little</td>
+ <td>Systems Administrator</td>
+ <td>New York</td>
+ <td>59</td>
+ <td>2009/04/10</td>
+ <td>$237,500</td>
+ </tr>
+ <tr>
+ <td>Bradley Greer</td>
+ <td>Software Engineer</td>
+ <td>London</td>
+ <td>41</td>
+ <td>2012/10/13</td>
+ <td>$132,000</td>
+ </tr>
+ <tr>
+ <td>Dai Rios</td>
+ <td>Personnel Lead</td>
+ <td>Edinburgh</td>
+ <td>35</td>
+ <td>2012/09/26</td>
+ <td>$217,500</td>
+ </tr>
+</table>
+根据选择的热词从而查询出评论数据
+| 文章ID | +评论用户 | +评论性别 | +评论地址 | +评论内容 | +点赞量 |
|---|---|---|---|---|---|
| {{ i[0] }} | +{{ i[5] }} | ++ {% if i[6] =='f' %} + 女生 + {% else %} + 男生 + {% endif %} + | +{{ i[3] }} | +{{ i[4] }} | +👍{{ i[2] }} | +
| + 文章ID + | ++ 文章IP + | ++ 点赞量 + | ++ 转发量 + | ++ 评论量 + | ++ 类型 + | ++ 内容 + | ++ 发布时间 + | + {% if defaultFlag %} ++ 情感分类 + | + {% endif %} +
|---|---|---|---|---|---|---|---|---|
| + + {{ article[0] }} + + | +{{ article[4] }} | +👍{{ article[1] }} | +🥇{{ article[2] }} | +🔥{{ article[3] }} | +{{ article[8] }} | +{{ article[5] }} | +{{ article[7] }} | + {% if defaultFlag %} ++ {% if article[-1] == '正面' %} + + {{ article[-1] }} + + + {% else %} + + {{ article[-1] }} + + + {% endif %} + | + {% endif %} +