网页版的摘要提取器

项目简介:制作一个网页版的摘要提取器,这个摘要提取器可以接收一篇文章,提取这篇文章的第一句和最后一句,然后拼在一起作为摘要在网页上输出。这里使用了Ajax进行数据传输。这个Ajax非常精炼,几行代码搞定。效果如下:

在输入框中粘贴一篇文章,点击提取,然后会输出这篇文章的摘要。摘要是由这篇文章的第一句话和最后一句话拼接而成。

在这里插入图片描述

项目的结构是一个index.html模板文件,放在templates文件夹下。一个app.py,放在和templates文件夹同级路径下,还有一个process.py,放在和app.py同级路径下。

app.py文件如下:

from flask import Flask, render_template, request, json
from process import fila  #这个process是自己写的,保存成py文件,与本文件放在同一个文件夹下。
app = Flask(__name__)


@app.route('/')
def index():
    return render_template("index.html")

#这个是用来实现ajax的
@app.route('/send_message/', methods=['POST']) #采用POST方式传输数据
def send_message():
    message_get = request.form.get('message')#因为是POST方法传输,所以用request.form.get(),如果是GET方法传输,就是request.args.get()
    ret = {'result': fila(message_get)} #构建json对象
    return json.dumps(ret) #把json对象ret序列化为字符串用于传输



if __name__ == '__main__':
    app.run(debug=True)

index.html文件如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hebron</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <link rel="stylesheet" href="/static/css/bootstrap.min.css">
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>

    <div class="container">
        <br>
        <h1>Hebron摘要提取器</h1>
        <br>
        <div>
            <input id="send" type="button" value="开始提取">
        </div>
        <br>
        <div class="row">
            <div class="col-md-8">
            <label for="send_content">原文:</label><br>
            <textarea id="send_content" style="width: 100%; height: 400px ;overflow: auto;word-break: break-all; resize: none;" name="send_content"></textarea>
            </div>

            <div class="col-md-4">
            <label for="recv_content">摘要:</label><br>
            <textarea id="recv_content" style="width: 100%; height: 400px ;overflow: auto;word-break: break-all; resize: none;" name="recv_content"></textarea>
            </div>
        </div>
    </div>





<div>

</div>


<script src="/static/js/jquery-3.4.1.min.js"></script>

<script type="text/javascript">
    $("#send").click(function () { 
        var message = $("#send_content").val()
        $.ajax({
            url:"/send_message/",
            type:"POST",
            data:{
                message:message
            },
            dataType: "json",
            success: function(data) {
                $("#recv_content").val(data.result);
            }
        })
    })
</script>

</body>
</html>

JS代码块是执行Ajax的核心,首先找到按钮的id,定义单击时触发这里的匿名函数。匿名函数中,先定义了一个变量message,用来获取并存储textarea里的值,然后是ajax的参数,URL就是flask的route的URL值,type是post,对应flask里的post方法,data是传给flask的数据,这里冒号后面的message就是在JS代码块最开始定义的那个变量message,冒号前面的message是要传给flask的变量名。dataType的意思是从flask接收来的数据的格式,这里指定的是json,所以flask把数据传过来就不用进行json化了,直接使用即可。success的意思是如果ajax成功了,该做什么事。这里让它在另一个textarea中显示flask传过来的文本。传过来的data是在flask里构造的json对象,它有一个属性是result,里面存入的值是经过process文件处理过的文本。

process.py文件如下:

import re


def fila(chuan):
    lili = re.split('。|!|;|?', chuan)
    return lili[0] + '。' + lili[-2]

process.py里就一个函数,用来提取第一句和最后一句,很简单,只有两行代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值