106 lines
1.7 KiB
Markdown
106 lines
1.7 KiB
Markdown
> [!IMPORTANT]
|
|
> This project has been moved to https://git.wayl.one/waylon/learn-sql-model
|
|
|
|
# Learn SQL Model
|
|
|
|
learning sql model
|
|
|
|
## Development
|
|
|
|
```console
|
|
pip install hatch
|
|
hatch shell
|
|
```
|
|
|
|
## Development with Docker
|
|
|
|
```console
|
|
docker compose build
|
|
docker compose up -d
|
|
```
|
|
|
|
To attach to the cli.
|
|
|
|
```console
|
|
docker attach learn-sql-model-cli-1
|
|
```
|
|
|
|
## Start the Server
|
|
|
|
```console
|
|
learn-sql-model api run
|
|
```
|
|
|
|
## Use the cli to manage Heros
|
|
|
|
```console
|
|
learn-sql-model hero create
|
|
|
|
# show them
|
|
learn-sql-model hero get
|
|
|
|
# show one
|
|
learn-sql-model hero get --id 0
|
|
```
|
|
|
|
## Use python to manage Heros
|
|
|
|
```python
|
|
from learn_sql_model.models.hero import Hero
|
|
# create a hero
|
|
bruce = Hero(name="Batman", secret_name="Bruce Wayne")
|
|
bruce.post()
|
|
# list all heros
|
|
Hero.get()
|
|
# get one hero
|
|
Hero.get(0)
|
|
```
|
|
|
|
## Use api to create hero
|
|
|
|
```console
|
|
# create a curl POST request to create hero
|
|
curl -X POST \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"name": "Batman", "secret_name": "Bruce Wayne"}' \
|
|
http://localhost:5000/heros
|
|
|
|
# list all heros
|
|
curl http://localhost:5000/heros
|
|
curl -X 'GET' \
|
|
'http://localhost:5000/heros/' \
|
|
-H 'accept: application/json'
|
|
|
|
# get one hero
|
|
curl -X 'GET' \
|
|
'http://localhost:5000/hero/9' \
|
|
-H 'accept: application/json'
|
|
```
|
|
|
|
## Settings Management
|
|
|
|
config support `.env`, `.env.dev`, `.env.qa`, `.env.prod`.
|
|
|
|
```.env
|
|
ENV=dev
|
|
DATABASE_URL=sqlite:///db.sqlite
|
|
API_SERVER__PORT=8000
|
|
API_SERVER__RELOAD=False
|
|
API_SERVER__LOG_LEVEL=debug
|
|
```
|
|
|
|
## Populating the database
|
|
|
|
```bash
|
|
learn-sql-model hero populate
|
|
```
|
|
|
|
## Creating new modesl
|
|
|
|
```bash
|
|
learn-sql-model model create
|
|
```
|
|
|
|
## License
|
|
|
|
`learn-sql-model` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
|