Какие шаги я должен предпринять, чтобы создать этот конкретный тип веб-сайта?

Мне нужно сделать веб-приложение, в котором пользователь может загружать определенные типы счетов в формате 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.

Вернуться на верх