Serving apps

For the full reference see: Serve

Included with AnPyLar is an application server to aid in development. It can:

  • Serve your application.
  • Open a browser/tab window for you.
  • Serve a JSON based API for your application.

Serving your application

Given a regular project layout:

myapp
├── app
│   ├── __init__.py
│   ├── app_component.css
│   ├── app_component.html
│   ├── app_component.py
│   └── app_module.py
├── anpylar.js
├── index.html
├── package.json
└── styles.css

You can serve your application with:

anpylar-serve myapp

which will output:

Sun Dec  3 08:51:47 2027 Server Starts - http://127.0.0.1:2222

You can then use the given url to go to the browser:

http://127.0.0.1:2222

Opening a browser tag/window

Pleae bear in mind that with modern multi-tabbed/multi-windowed browsers and with virtual desktops, the actual tab/window may not open where you expect it.

But in any case:

anpylar-serve --browser myapp

Serving an API

You need a data structure which resembles the following:

Pyroes = [
    {'pyd': 11, 'name': 'Pyro Nakamura'},
    {'pyd': 12, 'name': 'Mopynder Shuresh'},
    {'pyd': 13, 'name': 'Pyter Pytrelli'},
    {'pyd': 14, 'name': 'Angela Pytrelli'},
    {'pyd': 15, 'name': 'Claire Pynnet'},
    {'pyd': 16, 'name': 'Noah Pynnet'},
    {'pyd': 17, 'name': 'Pysaac Mendez'},
    {'pyd': 18, 'name': 'Pyki Sanders'},
    {'pyd': 19, 'name': 'The Pytian'},
    {'pyd': 20, 'name': 'Pylar'},
]

That is:

  • An array (list, tuple) of dict entries.
  • For the sake of it, they should all have the same structure. We are simulating a database.

If you store this under mock_pyroes.py in your application directory (because you may also use it internally):

myapp
├── app
│   ├── __init__.py
│   ├── app_component.css
│   ├── app_component.html
│   ├── app_component.py
│   ├── app_module.py
│   └── mock_pyroes.py
├── anpylar.js
├── index.html
├── package.json
└── styles.css

You may then serve the API as in:

anpylar-serve myapp \
  --api-url /api/pyroes/ \
  --api-mod myapp/app/mock_pyroes.py \
  --api-data Pyroes \
  --api-index pyd

See for example a real application with the Tour of Pyroes: Part 6-Plus - REAL Networking