FrontEnd - Backend Trennung [Python]

01/02/2020 13:38 Mad0ck#1
Schönen Mittag,

Das Thema ist eher weniger Python spezifisch. Falls jemand einen Rat seitens php oder sonstigem hat, freut es mich dennoch.

Mich beschäftigt in letzter Zeit relativ häufig die Frage, FrontEnd - BackEnd Trennung.

Bis dato habe ich eigentlich nie darauf geachtet. Egal ob PHP, Python oder Powershell.

Da ich aktuell mit Python eine Desktop Applikation programmieren will, wollte ich diesmal Front und Backend trennen.

Es kamen aber doch relativ schnell fragen und Unklarheiten zu dem Thema auf.
Um nicht irgendetwas zu machen, dachte ich es schadet nicht vorher mehr informationen einzuholen.

Folgendes Projekt:
Über eine GUI ( Desktop App ) am Client soll der User diverse Aktionen in einem Browsergame steuern können.
Weiters sollen diverse Daten in der GUI ausgegeben werden.

Ich habe das Projekt mehr oder weniger schon durchgeführt, nur ohne GUI.

So würd ich mir das erstmals vorstellen.
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Ich hab am Client nen GUI. Je nachdem was man anhackt / einstellt werden post/get requests an den root server geschickt.
Dieser verarbeitet diese, und schickt entweder die Daten zurück, oder leitet Sie in abgeändeter Form an den Browsergame Server weiter.


Requests verschicken war/ist bis dato kein Problem. Ich musste mich über die Verarbeitung am Server nicht kümmern, da dieser Zwischenschritt immer übersprungen wurde.

Wie aber richte ich nun am root server ein, dass die von der GUI verschickten requests empfangen und dementsprechend werden, um dann weiterverschickt werden ?


Ist sowas überhaupt sinnvoll ?

Danke erstmal fürs durchlesen. Eventuell findet sich eine/r die diesbezüglich mehr Erfahrung haben wie ich.

Lg
01/02/2020 19:21 elmarcia#2
Quote:
Originally Posted by Mad0ck View Post
Schönen Mittag,

Das Thema ist eher weniger Python spezifisch. Falls jemand einen Rat seitens php oder sonstigem hat, freut es mich dennoch.

Mich beschäftigt in letzter Zeit relativ häufig die Frage, FrontEnd - BackEnd Trennung.

Bis dato habe ich eigentlich nie darauf geachtet. Egal ob PHP, Python oder Powershell.

Da ich aktuell mit Python eine Desktop Applikation programmieren will, wollte ich diesmal Front und Backend trennen.

Es kamen aber doch relativ schnell fragen und Unklarheiten zu dem Thema auf.
Um nicht irgendetwas zu machen, dachte ich es schadet nicht vorher mehr informationen einzuholen.

Folgendes Projekt:
Über eine GUI ( Desktop App ) am Client soll der User diverse Aktionen in einem Browsergame steuern können.
Weiters sollen diverse Daten in der GUI ausgegeben werden.

Ich habe das Projekt mehr oder weniger schon durchgeführt, nur ohne GUI.

So würd ich mir das erstmals vorstellen.
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Ich hab am Client nen GUI. Je nachdem was man anhackt / einstellt werden post/get requests an den root server geschickt.
Dieser verarbeitet diese, und schickt entweder die Daten zurück, oder leitet Sie in abgeändeter Form an den Browsergame Server weiter.


Requests verschicken war/ist bis dato kein Problem. Ich musste mich über die Verarbeitung am Server nicht kümmern, da dieser Zwischenschritt immer übersprungen wurde.

Wie aber richte ich nun am root server ein, dass die von der GUI verschickten requests empfangen und dementsprechend werden, um dann weiterverschickt werden ?


Ist sowas überhaupt sinnvoll ?

Danke erstmal fürs durchlesen. Eventuell findet sich eine/r die diesbezüglich mehr Erfahrung haben wie ich.

Lg
So u want a proxy api for your gui, you can use Flask for that

proxyAPI.py

GuiProxy.py
01/02/2020 20:20 Mad0ck#3
Quote:
Originally Posted by elmarcia View Post
So u want a proxy api for your gui, you can use Flask for that

proxyAPI.py

GuiProxy.py
Hey,

Thanks for the fast response !

Well so the way to go is flask. Interesting.
Code:
if __name__ == "__main__":
    app.run(debug=True)
so basically I call the proxyAPI on my root server once, and from then on I can send requests to my server ?

Is it actually running in an endless loop then ? Or how should / can I understand that.
Do I need to recall the script after one request ? :/


Is that common in praxis to split front end and backend like that ?
If not, how would it be done normally.

For me right now, it only makes sense that way to split front and backend with requests to get data. Otherwise it wouldnt be totally separated.

Or do I missunderstand something.

Many thanks in advance !
01/03/2020 05:02 elmarcia#4
1)You change the proxy endpoints to whatever you want and forward the request to the game to get data. (Your gui consumes the proxyapi)

2) Flask creates a loop, when you run the script it listens in port 5000 for requests (port can be changed), then u can make as many requests as you want.

3) splitting front end and back end is a way to maintain code / add functionality independant of the user's view.
You can reuse the backend with lots of differents frontend (mobile / web / desktop)
01/03/2020 13:03 Mad0ck#5
Quote:
Originally Posted by elmarcia View Post
1)You change the proxy endpoints to whatever you want and forward the request to the game to get data. (Your gui consumes the proxyapi)

2) Flask creates a loop, when you run the script it listens in port 5000 for requests (port can be changed), then u can make as many requests as you want.

3) splitting front end and back end is a way to maintain code / add functionality independant of the user's view.
You can reuse the backend with lots of differents frontend (mobile / web / desktop)
Many thanks.
I really appreciate your answers :)