Flask框架制作读取txt文本网页

news2025/1/10 16:52:23

Pycharm demo项目

app2.py(运行)
index2.html (网页)

网页访问地址: http://127.0.0.1:5000

在这里插入图片描述

网页画面

在这里插入图片描述

核心代码(网页)

  1. 点击按钮弹窗选择 txt 文件(index2.html)
<form method="post" enctype="multipart/form-data">
	<p class="font-weight-bold">上传文本(只支持.txt)</p>
	<input type="file" name="file"/><br><br>
	<input type="submit" class="btn btn-primary font-weight-bold text-white" value="生成内容"/>
</form>
  1. 获取 txt 文件(app2.py)
file = request.files["file"]
  1. 保存文件到预设的文件目录下,直接 open read 读取,得到文本内容 a(app2.py)
if file:
    print(file.filename)
    file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
    print('C:/Users/'+username+'/Desktop/'+file.filename)
    f = open('C:/Users/'+username+'/Desktop/'+file.filename, "r+", encoding='utf-8')
    filecontent = f.read()
    a = str(filecontent)
  1. 将文本内容 a 发送到index2.html网页(app2.py)
return render_template('index2.html', a=a)
  1. 网页获取文本内容并显示(index2.html)
<div>
	<h2>文本内容 :</h2>
	<p class=" font-italic lead text-justify">{{ a }}</p>
</div>

index2.html

<!DOCTYPE html>
<html>
<head>
	<title>demo</title>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/styles.css') }}">

</head>
<body class="maincon">
	<header>
		<div class="jumbotron text-center">
		<h1>demo</h1>
		</div>
	</header>

	<div class="container p-3 my-3 text-white text-justify" >
		<div class="row">
		<div class="col-xl-12">
		<div class="form-group">
			<h2> </h2>
			<form method="post" enctype="multipart/form-data">
				<p class="font-weight-bold">上传文本(只支持.txt)</p>
				<input type="file" name="file"/><br><br>
				<input type="submit" class="btn btn-primary font-weight-bold text-white" value="生成内容"/>
			</form>
		</div>	
		</div>	
		</div>
		<br>
		<div>
			<h2>文本内容 :</h2>
			<p class=" font-italic lead text-justify">{{ a }}</p>
        </div>
		<br>
	</div>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
	
</body>
</html>

app2.py

from flask import Flask, render_template, request, redirect, abort, flash
from textblob import TextBlob
from spellchecker import SpellChecker
import re
import getpass
import os

username = getpass.getuser()
UPLOAD_FOLDER = 'C:/Users/'+username+'/Desktop/demo'#创建保存txt的文件夹

print(UPLOAD_FOLDER)
app = Flask(__name__)
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
app.config['UPLOAD_EXTENSIONS'] = ['.txt']
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

@app.route("/", methods=["GET", "POST"])
def index():
    a=""
    if request.method == "POST":
        print("FORM DATA RECEIVED")

        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.filename != '':
            file_ext = os.path.splitext(file.filename)[1]
            if file_ext not in app.config['UPLOAD_EXTENSIONS']:
                print("Please upload a .txt file type only")
                return abort(400)

        if file:
            print(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
            print('C:/Users/'+username+'/Desktop/'+file.filename)
            f = open('C:/Users/'+username+'/Desktop/'+file.filename, "r+", encoding='utf-8')
            filecontent = f.read()
            a = str(filecontent)
            
    return render_template('index2.html', a=a)


if __name__ == "__main__":
    app.run(debug=True, threaded=True)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/668063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索CSS中的粘性定位:解锁网页布局的新可能

这篇文章详细解释了CSS中的sticky定位方式&#xff0c;并讲解了它的工作原理。 CSS中的sticky定位有很好的浏览器支持&#xff0c;但许多开发者并没有使用它。原因有两方面&#xff1a;一是等待浏览器支持的时间太长&#xff0c;导致这个特性被遗忘&#xff1b;二是大部分开发…

OpenCV项目开发实战--一步一步介绍使用 OpenPose 进行基于深度学习的人体姿势估计--C++/Python源码

文末附基于Python和C++两种方式实现的测试代码下载链接 在本教程中,使用 OpenCV 进行基于深度学习的人体姿态估计。我们将详细说明如何在您自己的应用程序中使用预训练 Caffe 模型。 1.姿态估计(又名关键点检测) 姿态估计是计算机视觉中的一个普遍问题,我们在其中检测物体…

西门子Mendix入门

首先进入网址Mendix 点击下方sign up进入带注册页面 我的注册成功后需要等会才能完成注册&#xff0c;我是下午开始注册的&#xff0c;晚上九点半的时候就可以登陆了 点击右上方create Apps 之后进入到这个页面选择应用程序模板 这里我们搜索Task选择第一个 单击Select Templa…

【Arduino+ESP32专题】Visual Studio Code界面重置为默认状态

在使用Visual Studio Code进行编程的时候&#xff0c;有时不小心把某些状态栏或功能框关闭了&#xff0c;不知道从哪里再次打开。因此有一个办法是曲线救国&#xff0c;可以让Visual Studio Code界面重置为默认状态就行了。 方式1 选择右上角Open Settings(UI)图标 打开文档把…

GC相关的

1、判断对象是否为垃圾的算法 引用计数算法可达性分析算法 引用计数算法 判断的标准&#xff1a; 通过判断对象的引用数量来决定对象是否可以被回收。 每个对象实例都有一个引用计数器&#xff0c;被引用则1&#xff0c;完成引用则-1。 任何引用计数为0的对象实例可以被当…

操作系统-I/O管理-I/O系统(设备独立性软件)

目录 一、假脱机技术(SPOOLing技术) 二、设备的分配与回收 2.1设备分配考虑因素 设备的固有属性 设备分配算法 设备分配中的安全性 2.2静态分配和动态分配 2.3设备分配管理中的数据结构 DTC COCT CHCT SDT 三、缓冲区管理 3.1单缓冲 3.2 双缓冲 ​3.2循环缓冲 3.…

1746_Perl中面向对象的目录处理模块

全部学习汇总&#xff1a; GreyZhang/perl_basic: some perl basic learning notes. (github.com) 说起来我还不懂Perl的面向对象编程技术&#xff0c;只是在前阵子看到了书中提到了一句&#xff0c;用到了一个例子。今天看书的时候又看到了类型形势的代码&#xff08;代码中很…

25利用 灰色预测模型预测发电量(附matlab程序)

1.简述 学习目标&#xff1a; 灰色预测模型预测发电量 根据原始发电量数据预测需要年份的发电量 发电量预测是电力系统规划与运行的基础,是电力市场运作中的重要组成部分.目前,对发电量预测的研究已经比较深入,常用的发电量预测方法有:灰色预测法,线性回归模型,自回归移动平均模…

软件测试(1)

软件测试就是用来验证产品特性是否满足用户需求 调试是发现并解决软件中的缺陷 开发人员编码阶段进行 测试是用来发现软件中的缺陷 测试人员&#xff0c;开发人员&#xff08;单元测试&#xff0c;集成测试&#xff09; 测试贯穿于整个软件的生命周期&#xff0c;但是调…

免费在线压缩图片的网站

1. TinyPNG - 这是一个非常受欢迎的在线图片压缩网站,可以压缩 PNG 和 JPG 图片,保证无损压缩。 网址&#xff1a;TinyPNG – Compress WebP, PNG and JPEG images intelligently 2. Compressor.io - 这也是一个很好的在线图片压缩工具,可以批量上传和压缩图片,支持 PNG, JPG 和…

逆向Android开发工程,抓包!抓包!学习哪里?

抓包是什么&#xff1f; 在Android逆向工程中&#xff0c;抓包是一项重要的技术&#xff0c;用于获取手机应用程序与服务器之间的通信数据。通过抓包&#xff0c;可以分析应用程序的网络请求&#xff0c;获取请求的URL、参数、响应数据等信息&#xff0c;对应用程序的行为进行…

JavaSE进阶--注解

文章目录 前言一、概念二、使用实例1、Junit测试中2、JDK内置注解 三、自定义注解1、注解声明2、注解配置参数2.1 配置参数的类型&#xff1a;2.2 注意2.3 两个概念 3、使用注解 四、元注解1、Retention1.1 RetentionPolicy.SOURCE1.2 RetentionPolicy.CLASS1.3 RetentionPolic…

千万不要在简历里写精通C++,没人能真正精通C++

任何说自己很懂C的人可能都是在夸大其词。 我想你可能已经注意到了&#xff0c;是的&#xff0c;今天的大多数程序员都在使用Python、Rust、Go或是其他新的编程语言。大部分人已经不再需要掌握C、C等古老的编程语言了&#xff0c;甚至很多程序员已经从手动编码开始向AI编码转型…

el-select 触底分页+远程搜索

文章目录 前言一、el-select 触底分页远程搜索1.封装触底自定义指令2.在 mian.js 引入封装好的自定义指令3.在组件中进行使用 总结 前言 大部分情况下使用 el-select 的时候&#xff0c;el-options 中 options 的值都是后端接口给的数据&#xff0c;直接赋值就可以了。但是有的…

(8版本)mysql数据库安装教程(自用保存)

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: mysql 参考csdn大神们的文章&#xff0c; 总结出来的详细用法~~~ 目录 文章目录 一、下载MySQL8.0.33 二、配置初始化文件my.ini(重点) 三、初始化MySQL 四、安装MySQL服务并启动 修改密码 4.1 安装…

akima 插值拟合算法 Python/C++版本

目录 前言Akima简介Akima优势 算法的代码实现python版C 版代码解析1代码解析2代码解析3 结果测试 前言 鉴于CSDN上Akima算法文章大部分要VIP观看或者下载&#xff0c;即使是付费也有质量不佳&#xff0c;浪费Money也浪费时间。 笔者更具查到的资料分享给大家。 Akima简介 Ak…

C++技能系列 ( 5 ) - 详解函数入参/返回参使用(值传递/引用传递/指针传递/智能指针传递)

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待动动小手&#xff0c;点击关注哦&#xff01;&#xff01;&#xff01; 当你休息的时候&#xff0c;一定要想到别人还在奔跑。 When you rest, we must thin…

数据库相关

1、主要考点思维导图 2、如何设计一个关系型数据库 存储管理&#xff1a;数据逻辑关系转为物理存储关系。 缓存机制&#xff1a;优化执行效率。 SQL解析&#xff1a;将Sql语句进行解析。 日志管理&#xff1a;记录操作。 权限划分&#xff1a;多用户管理。 容灾机制&…

2、瑞丽-伯纳德对流的拉格朗日拟序结构(FTLE场结果对比)

在上篇博客中&#xff0c;我简单比较了瑞丽伯纳德对流的FTLE场&#xff0c;但是因为粒子追踪采用的是欧拉方法&#xff0c;所以精度不是很高&#xff0c; 因此与文献中的结果还是有些差别。 下面放一张文献中的FTLE场&#xff0c;参数与上篇文章是一致的&#xff0c;Ra 1e8;Pr…

《面试1v1》SpringBean生命周期

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…