Какие шаги я должен предпринять, чтобы создать этот конкретный тип веб-сайта?
Мне нужно сделать веб-приложение, в котором пользователь может загружать определенные типы счетов в формате pdf, а необходимые поля извлекаются и отображаются на сайте.
Я создал код python для извлечения необходимых данных и веб-страницу (используя flask) для загрузки документов. Загруженные документы в настоящее время сохраняются в папке на моем компьютере, из которой код python извлекает данные.
Я хотел бы знать необходимые шаги, которые я должен предпринять для завершения и развертывания веб-сайта самым простым и быстрым способом , чтобы каждый в моем офисе мог использовать его и загружать на него специфические типы счетов в формате pdf.
Вот код для извлечения деталей из счетов-фактур в формате pdf:
import os
import pytesseract
import re
import pdfplumber
import pandas as pd
po_re=re.compile(r"PO [#][:]\sTRN[_]\d{2}[-]\d{4}[_](\d{4}|\d{3}|\d{2}|\d{1})")
shipto_re=re.compile(r"SHIP TO((?:.*\n){1,4})")
specs_re=re.compile(r"TNOP(?:[A-Z]){4}(\d{4}).*")
dub_re=re.compile(r"\d{2}[.]\d{1}")
qty_re=re.compile(r"\d{1}?(?=\s\d{2}[.]\d{1}\s[%])")
listoflist=[]
files=[]
directory=r"C:\Users\mihir\settls\PO\POs\fbpdfs"
for filename in os.listdir(directory):
if filename.endswith(".pdf"):
files.append(filename)
print(files)
df=pd.DataFrame()
header_list=["PO","ITEM","Qty","SHIPTO"]
df = df.reindex(columns = header_list)
for f in files:
pdf = pdfplumber.open(r"C:\Users\mihir\settls\PO\POs\fbpdfs"+"\\"+f)
specs=[]
qty=[]
shipto=[]
#ship=[]
for i in range(0,len(pdf.pages)-1):
page = pdf.pages[i]
text = page.extract_text()
for line in text.split('\n'):
if po_re.match(line):
po=line
for line in text.split('\n'):
if specs_re.match(line):
specs.append(line)
shipto += shipto_re.findall(text)
count=0
spliz=text.split()
for i in spliz:
count+=1
if(dub_re.match(i)):
qty.append(spliz[count-2])
str=shipto[0]
match = re.search(r'\n {2}Gaurav\n(.*\n.*) {4}gaurav', shipto[0])
if match:
ship=match.group(1)
#print(match.group(1))
str=match.group(1)
data={
'PO#':po,
'Item':specs,
'Qty':qty,
'SHIPTO':str
}
else:
match=re.search(r"^SCOPE OF WORK: Supply & ([\w, #-]+),\s+PAN#: [A-Z]{5}[0-9]{4}[A-Z]\s+installation ([\w, #-]+),\s+Gaurav$",shipto[0])
if not list:
ship=match.group(1)
data={
'PO#':po,
'Item':specs,
'Qty':qty,
'SHIPTO':match.group(1)
}
#print(po)
#print('\n')
#print(ship)
# print('\n')
#print(specs)
# print('\n')
#print(qty)
#print('\n')
df=pd.DataFrame(data)
#print(df)
#print(shipto[0])
#ship=""
#print(ship+dub_re.findall(str)[0])
#print(ship)
#ship.append(shipto)
Вот код для веб-страницы, которую я сделал для загрузки файлов:
from flask import Flask, render_template, flash, request, redirect
from werkzeug.utils import secure_filename
import os
import urllib.request
firebase=pyrebase.initialize_app(config)
storage=firebase.storage()
app = Flask(__name__)
UPLOAD_FOLDER = r"C:\Users\mihir\settls\PO\POs\fbpdfs"
app.secret_key = "Cairocoders-Ednalan"
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
ALLOWED_EXTENSIONS = set(['pdf'])
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/')
def upload_form():
return render_template("upload.html")
@app.route('/', methods=['POST'])
def upload_file():
if request.method == 'POST':
if 'files[]' not in request.files:
flash('No file part')
return redirect(request.url)
files = request.files.getlist('files[]')
for file in files:
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
flash('File(s) successfully uploaded')
return redirect('/')
if __name__ == '__main__':
app.run(debug=True)
Я хочу знать самый простой способ сделать это, я не против сменить фреймворк с flask.