www.elektronik.si
python, webserver Flask in dostop do datotek na serverju

www.elektronik.si -> Programska oprema

Avtor: eddieKraj: Severna primorska PrispevekObjavljeno: Sob Maj 07, 2022 8:21 pm    Naslov sporočila:  python, webserver Flask in dostop do datotek na serverju
----------------------------------------------------------------------------
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.

Avtor: R33D3M33R PrispevekObjavljeno: Tor Jun 07, 2022 8:42 pm    Naslov sporočila:  
----------------------------------------------------------------------------
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

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group