|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
eddie Član
Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 706 Aktiv.: 3.17 Kraj: Severna primorska
|
Objavljeno: 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
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 |
|
|
R33D3M33R Član
Pridružen-a: Pon 08 Jun 2009 13:56 Prispevkov: 244 Aktiv.: 1.35
|
Objavljeno: 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 |
|
Nazaj na vrh |
|
|
|
|
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: 70 dni
Powered by phpBB © 2001, 2005 phpBB Group
|