Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/beeware/briefcase-web-static-template
A template for generating static web projects with Briefcase.
https://github.com/beeware/briefcase-web-static-template
Last synced: about 1 month ago
JSON representation
A template for generating static web projects with Briefcase.
- Host: GitHub
- URL: https://github.com/beeware/briefcase-web-static-template
- Owner: beeware
- License: mit
- Created: 2022-10-05T02:48:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-10T22:04:39.000Z (about 2 months ago)
- Last Synced: 2024-12-10T23:18:33.227Z (about 2 months ago)
- Language: HTML
- Size: 498 KB
- Stars: 2
- Watchers: 7
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Briefcase Static Web Template
=============================A `Cookiecutter `__ template for
building Python apps that will run as statically-served web pagesUsing this template
-------------------The easiest way to use this project is to not use it at all - at least, not
directly. `Briefcase `__ is a tool that
uses this template, rolling it out using data extracted from a
``pyproject.toml`` configuration file.However, if you *do* want use this template directly...
1. Install `cookiecutter`_. This is a tool used to bootstrap complex project
templates::$ pip install cookiecutter
2. Run ``cookiecutter`` on the template::
$ cookiecutter https://github.com/beeware/briefcase-web-static-template
This will ask you for a number of details of your application, including the
`name` of your application (which should be a valid PyPI identifier), and
the `Formal Name` of your application (the full name you use to describe
your app). The remainder of these instructions will assume a `name` of
``my-project``, and a formal name of ``My Project``.3. Build a wheel for your project, and add it to ``www/static/wheels``.
4. Add wheels for any additional project requirements to ``www/static/wheels``.
5. Add a file named ``www/pyscript.toml`` to configure the PyScript
interpreter. At a minimum, it should include a ``packages`` declaration
that includes all the wheels in the ``www/static/wheels`` folder.If you've done this correctly, a project with a formal name of ``My Project``,
with an app name of ``my-project`` should have a directory structure that
looks something like::My Project/
app/
...
www/
static/
css/
briefcase.css
wheels/
my_project-0.0.1-py3-none-any.whl
other-1.2.3-py3-none-any.whl
favicon.png
index.html
pyscript.toml
briefcase.tomlwith ``www/pyscript.toml`` containing::
packages = [
"my_project-0.0.1-py3-none-any.whl",
"other-1.2.3-py3-none-any.whl",
]You should now be able to serve the `www` folder as a static website::
$ python -m httpd.server --directory www
Next steps
----------Of course, running Python code isn't very interesting by itself - you'll be
able to output to the web console, but that won't be visible to most users.When the page loads, it will attempt to run ``my_project`` as a module (i.e.,
the equivalent of running ``python -m my_project`` from the command line).To do something interesting, you'll need to add some DOM objects. You can use
`PyScript `__ APIs to manipulator the DOM.Alternatively, you could use a cross-platform widget toolkit that supports the
web as a target (such as `Toga`_) to provide a GUI for your application... _cookiecutter: https://github.com/cookiecutter/cookiecutter
.. _Toga: https://beeware.org/project/projects/libraries/toga