我在本地有一些数据放在passwdtxt里面。这个文件里面都是我放进去的一些数字和字母的组合一条一条的数据一行一条就像这样:1111aa5452222dff443333544dd请帮我写一个网页服务首先在网页上面实时显示passwdtxt当前有多少行数据。然后网页上还需要一个获取按扭每次点获取的时候就在passwdtxt里面抽出来一行数据并显示在网页上。注意:只需要在网页上显示这条数据就可以不要有
实现这个需求,需要使用后端语言和数据库操作。我建议使用Python作为后端语言,使用Flask框架搭建网页服务,使用SQLite数据库存储数据。
首先,需要安装Flask和SQLite。可以使用pip命令安装:
pip install flask
pip install sqlite3
接下来,创建一个名为app.py的Python文件,编写以下代码:
from flask import Flask, render_template, request
import sqlite3
app = Flask(__name__)
# 连接数据库
conn = sqlite3.connect('passwd.db')
c = conn.cursor()
# 创建数据表
c.execute('''CREATE TABLE IF NOT EXISTS passwd
(id INTEGER PRIMARY KEY AUTOINCREMENT, data TEXT)''')
conn.commit()
# 读取数据表中的数据数量
def get_count():
c.execute("SELECT COUNT(*) FROM passwd")
count = c.fetchone()[0]
return count
# 获取数据表中的一行数据
def get_data():
c.execute("SELECT data FROM passwd LIMIT 1")
data = c.fetchone()[0]
return data
# 删除数据表中的一行数据
def delete_data():
c.execute("DELETE FROM passwd WHERE id=(SELECT MIN(id) FROM passwd)")
conn.commit()
# 插入新的数据
def insert_data(data):
c.execute("INSERT INTO passwd (data) VALUES (?)", (data,))
conn.commit()
# 关闭数据库连接
def close_conn():
c.close()
conn.close()
@app.route('/')
def index():
# 显示数据数量
count = get_count()
return render_template('index.html', count=count)
@app.route('/get_data', methods=['POST'])
def get_passwd():
# 获取一行数据
data = get_data()
# 删除这行数据
delete_data()
# 返回数据
return data
@app.route('/copy_data', methods=['POST'])
def copy_passwd():
# 获取一行数据
data = get_data()
# 删除这行数据
delete_data()
# 插入新的数据
insert_data(data)
# 返回数据
return data
if __name__ == '__main__':
app.run()
这段代码实现了连接数据库、创建数据表、读取数据表中的数据数量、获取一行数据、删除一行数据、插入新的数据、关闭数据库连接等功能。其中,index()函数用于显示数据数量,get_passwd()函数用于获取一行数据并删除,copy_passwd()函数用于复制一行数据并删除。
接下来,需要创建一个名为index.html的HTML文件,编写以下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Passwd</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<h1>Passwd</h1>
<p>当前剩余数据数量:{{ count }}</p>
<button id="get-btn">获取数据</button>
<button id="copy-btn">复制数据</button>
<p id="data"></p>
<script>
$(document).ready(function() {
// 点击获取按钮
$('#get-btn').click(function() {
$.ajax({
url: '/get_data',
type: 'POST',
success: function(data) {
$('#data').text(data);
}
});
});
// 点击复制按钮
$('#copy-btn').click(function() {
$.ajax({
url: '/copy_data',
type: 'POST',
success: function(data) {
$('#data').text(data);
}
});
});
});
</script>
</body>
</html>
这段代码实现了显示数据数量、获取数据、复制数据等功能。通过jQuery库实现了异步请求数据的功能。
最后,将passwd.txt文件中的数据导入到passwd.db数据库中,可以使用以下代码:
import sqlite3
# 连接数据库
conn = sqlite3.connect('passwd.db')
c = conn.cursor()
# 读取passwd.txt文件中的数据
with open('passwd.txt') as f:
data = f.readlines()
# 插入数据到数据库中
for d in data:
c.execute("INSERT INTO passwd (data) VALUES (?)", (d.strip(),))
# 提交事务
conn.commit()
# 关闭数据库连接
c.close()
conn.close()
这段代码将passwd.txt文件中的数据逐行插入到passwd.db数据库中。
部署上线时,可以将app.py和index.html文件上传到服务器,并在服务器上安装Flask和SQLite。然后,使用命令行进入到app.py所在的目录,运行以下命令启动网页服务:
python app.py
网页服务就可以在服务器上运行了。如果需要让网页服务在后台运行,可以使用以下命令:
nohup python app.py > /dev/null 2>&1 &
这样,网页服务就会在后台运行,并且不会受到终端中断的影响。
原文地址: http://www.cveoy.top/t/topic/bVdd 著作权归作者所有。请勿转载和采集!