evennia/evennia/web
Griatch b624d3dd5c Merge pull request #3192 from friarzen/main
BugFix: Restore dynamic class kwarg assignment to goldenlayout clients
2023-05-21 10:57:13 +02:00
..
admin Format code imports 2022-11-10 22:21:12 +01:00
api Format code imports 2022-11-10 22:21:12 +01:00
static BugFix: Restore dynamic class kwarg assignment to goldenlayout-enabled clients 2023-05-13 17:20:44 -04:00
templates registration setting 2023-01-02 20:48:33 -07:00
templatetags Move and split views 2021-05-16 21:09:38 +02:00
utils update setting name, tests 2023-01-06 11:37:24 -07:00
webclient Format code imports 2022-11-10 22:21:12 +01:00
website Changed importing of SESSION_HANDLER to avoid circular imports when extending Portal or Server SessionHandler. 2023-05-11 20:39:30 -04:00
__init__.py Move and split views 2021-05-16 21:09:38 +02:00
README.md Continue documentation of web components 2021-05-22 16:11:48 +02:00
urls.py Format code imports 2022-11-10 22:21:12 +01:00

Web resources

This folder holds the functioning code, html, js and css files for use by the Evennia website and -client. This is a standard Django web application.

  1. When a user enters an url (or clicks a link) in their web browser, Django will use this incoming request to refer to the urls.py file.
  2. The urls.py file will use regex to match the url to a view - a Python function or callable class. The incoming request data will be passed to this code.
  3. The view will (usually) refer to a template, which is a html document with templating slots that allows the system to replace parts of it with dynamic content (like how many users are currently in-game).
  4. The view will render the template with any context into a final HTML page that is returned to the user to view.

I many ways this works like an Evennia Command, with input being the browser's request and the view being the Command's function body for producing a result.

In the case of the webclient, the html page is rendered once and when doing so it loads a Javascript application in the browser that opens a websocket to communicate with the server.