www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

python, webserver Flask in dostop do datotek na serverju

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
eddie
Član
Član



Pridružen-a: Sre 10 Dec 2003 21:02
Prispevkov: 706
Aktiv.: 3.18
Kraj: Severna primorska

PrispevekObjavljeno: Sob Maj 07, 2022 8:21 pm    Naslov sporočila:  python, webserver Flask in dostop do datotek na serverju Odgovori s citatom

Pozdravljeni,

v pythonu delam en projekt in sem začetnik na skoraj vseh področjih Whistle
No, jasno da se zatika. Tokrat ne znam premaknit naprej.

V python aplikaciji zgeneriram iz podatkov različne dokumente, ki se shranijo na strežniku v določeno mapo recimo C:/Data/2022_05_07/

Ti dokumenti so: pdf dokumenti, png slike, 3D model v obliki .obj,...
Mape, kjer bodo shranjeni dokumenti bodo različne - vsak dan nova.

V aplikaciji je z modulom Flask izveden zelo preprost web server, kjer bi te dokumente rad prikazal.

Problem je v tem ker ti dokumenti niso v mapi "static" kjer Flask originalno pričakuje dokumente na katere potem v HTML-ju lahko daš link.

Za slike sem našel funkcijo, ki poljubno sliko (iz trenutne izbrane mape) odpre v python aplikaciji in vrne kot "HTML dokument":


python del:
Koda:

@app.route("/img/<path>")
def image_as_html(path):
    with open(gvl.current_data_folder+path+'.png', 'rb') as fd:
        image_as_base64_html = f"""
       <img src="data:image/png;base64,{base64.encodebytes(fd.read()).decode()}">"""
    return image_as_base64_html


tale del deluje in mi odgovarja.

Problem je pri prikazu .obj modela. Za prikaz modela uporabljam javascript plugin:
https://www.viewstl.com/plugin/#intro

skripta ki je v HTMLju:

Koda:

         <script>
            var stl_viewer=new StlViewer
            (
                document.getElementById("stl_cont"),
                {
                    models:
                    [
                        {id:1, filename:"model.obj", display:"smooth", rotationx:0.5, rotationy:0.5, rotationz:0.5, animation:{delta:{rotationx:1,rotationy:1,rotationz:1, msec:10000, loop:false}}}
                    ]
                }
            );
        </script>


in ta skripta uspešno prikaže model, ki je shranjen v "static" folderju.

Ne znam mu pa "podtaknit" modela iz poljubne mape.

V HTMLju sem švoh, javascript je pa še čisti tujec.
Prosim za kakšen namig kako se kaj takega sploh lotiti.

Aja, še to, na koncu bi rad aplikacijo s pyinstaller-jem zapakiral v "singlefile" .exe aplikacijo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
R33D3M33R
Član
Član



Pridružen-a: Pon 08 Jun 2009 13:56
Prispevkov: 244
Aktiv.: 1.35

PrispevekObjavljeno: Tor Jun 07, 2022 8:42 pm    Naslov sporočila:   Odgovori s citatom

Pri strežnikih je to, da servirajo datoteke samo iz vnaprej določene mape, del varnosti. Osebno bi najprej poskusil narediti simbolno povezavo v mapo static: https://docs.python.org/3/library/os.html#os.symlink
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group