from flask import Flask, render_template, redirect from flask_wtf import FlaskForm from wtforms import SelectField, SubmitField import os from glob import glob from my_db import SQLiteDB import socket app = Flask(__name__) def get_local_ip(): try: # 获取本机主机名 host_name = socket.gethostname() # 通过主机名获取本机IP地址 local_ip = socket.gethostbyname(host_name) return local_ip except socket.error: return "无法获取本地IP地址" app.config['SECRET_KEY'] = 'aaa' def get_all_excel_files(directory): # 获取指定目录及其子目录下的所有Excel文件 return glob(os.path.join(directory, '**', '*.xlsx'), recursive=True) def get_choices(): db_path = './uploads/example.db' db = SQLiteDB(db_path) # excel_files = get_all_excel_files('./uploads/') # for file in excel_files: # print(file) # if '市场局规则判定统计' in file: # print(file) # __c = file.split('\\')[-1] # choices_data.append((__c, __c)) # print(choices_data) choices_data = [(a, str(a).replace('tb','')) for i, a, *_ in db.query('sqlite_master', condition='type=="table"')] db.close() return choices_data class DropdownForm(FlaskForm): choices_data = get_choices() print(choices_data) dropdown1 = SelectField('文件1', choices=choices_data) dropdown2 = SelectField('文件2', choices=choices_data) submit = SubmitField('提交') @app.route('/', methods=['GET', 'POST']) def index(): form = DropdownForm() if form.validate_on_submit(): selected1 = form.dropdown1.data selected2 = form.dropdown2.data return redirect( "http://{ip}:5000/webview2/?filename1={filename1}&filename2={filename2}".format(ip=get_local_ip(), filename1=selected1, filename2=selected2)) return render_template('file_diff.html', form=form) if __name__ == '__main__': app.run(host='0.0.0.0', port=1234, debug=True)