Readme: mariadb note, wtforms and database sections, app publishing; Makefile: docker-push
This commit is contained in:
parent
5516a7d29e
commit
dab01abf2b
2 changed files with 53 additions and 4 deletions
4
Makefile
4
Makefile
|
@ -16,6 +16,10 @@ docker:
|
|||
python3 -m dotenv -f version_code run \
|
||||
docker build -t ${REPO_OWNER_LOWER}/${REPO_NAME_SNAKE}:$$VERSION .
|
||||
|
||||
docker-push:
|
||||
python3 -m dotenv -f version_code run \
|
||||
docker push ${REPO_OWNER_LOWER}/${REPO_NAME_SNAKE}:$$VERSION
|
||||
|
||||
clean:
|
||||
rm -rf app/__pycache__
|
||||
rm -rf app/*/__pycache__
|
||||
|
|
53
README.md
53
README.md
|
@ -19,6 +19,9 @@ Includes Jinja, WTForms, MySQL ORM and Docker.
|
|||
2. For debugging, change the database connection parameters
|
||||
in `.env_debug` file correspoding to the configuration
|
||||
of MariaDB/MySQL server on your PC
|
||||
1. If you have no MariaDB/MySQL test server installed,
|
||||
search for "[mariadb install (your linux distro)](https://searx.dc09.ru/search?q=mariadb+install+ubuntu)",
|
||||
for example: [an article on DigitalOcean for Ubuntu 22.04](https://url.dc09.ru/mdbu22do)
|
||||
3. Edit app [paths](#paths),
|
||||
[custom error pages](#custom-error-pages)
|
||||
and [forms](#wtforms)
|
||||
|
@ -118,10 +121,46 @@ but you can add your own:
|
|||
3. Add (or remove) elements to the list below
|
||||
|
||||
### WTForms
|
||||
TODO
|
||||
[Related docs page](https://github.com/muicss/starlette-wtf/blob/master/README.md)
|
||||
|
||||
Each file in the `app/forms` directory
|
||||
contains a WTForms class (or multiple classes).
|
||||
You can simply copy `users.py` content
|
||||
to create a form and use it in your project.
|
||||
|
||||
Also, there is one helper function in `__init__.py`
|
||||
named `get_form` for instantiating WTForms class.
|
||||
It should be preferred to the direct constructor call.
|
||||
|
||||
### Sample website
|
||||
Included templates and CSS/JS files, paths, forms and SQL database
|
||||
are related to the sample website (for showing how the template works)
|
||||
and can be deleted or edited, except:
|
||||
- `__init__.py`s
|
||||
- `main.py`
|
||||
- `common.py`
|
||||
- `respond.py`
|
||||
- `paths/errors.py`
|
||||
|
||||
### Database
|
||||
TODO
|
||||
[Related docs page](https://fastapi.tiangolo.com/tutorial/sql-databases/)
|
||||
|
||||
- SQLAlchemy models are stored in `app/sql/models.py`
|
||||
- Pydantic models (schemas)
|
||||
used for more handy SQLAlchemy models processing
|
||||
are stored in `app/sql/schemas.py`
|
||||
- Functions executing SQL CRUD requests
|
||||
are stored in `app/sql/crud.py`
|
||||
|
||||
> **Note**
|
||||
> As the official FastAPI documentation recommends (the link is above),
|
||||
there are two schemas — `User` and `UserCreate` — for one `User` SQLAlchemy model.
|
||||
> The first one is needed for SELECT requests,
|
||||
and the second one is for INSERT requests (creating users).
|
||||
> The first one contains all information about user,
|
||||
but the second one (`UserCreate`) ommits `id` field,
|
||||
because we don't want to specify an ID when creating a new user,
|
||||
it will be generated automatically by the MariaDB server.
|
||||
|
||||
|
||||
## Helper functions
|
||||
|
@ -235,6 +274,12 @@ Code is copied from the official docs.
|
|||
|
||||
|
||||
## Publishing app
|
||||
First of all, build an image: `make docker`
|
||||
First of all, check the `version_code` file and correct it if needed,
|
||||
Then build a Docker image using `make docker` command.
|
||||
|
||||
Follow [this documentation page](https://docs.docker.com/get-started/04_sharing_app/)
|
||||
to upload your image to Docker Hub.
|
||||
to create an account in the Docker Hub.
|
||||
|
||||
To publish the image, you can use `make docker-push` command,
|
||||
or manually enter the image name and its tag (version):
|
||||
`docker push yourname/yourapp:tag`
|
||||
|
|
Loading…
Reference in a new issue