An open API service indexing awesome lists of open source software.

https://github.com/billy0402/django-bookstore

A learning project from NTUB Django course.
https://github.com/billy0402/django-bookstore

bootstrap4 course django django-rest-framework python restful-api sqlite web

Last synced: 3 months ago
JSON representation

A learning project from NTUB Django course.

Awesome Lists containing this project

README

          

# django-bookstore

## environment
- [macOS 10.14.6](https://www.apple.com/tw/macos/mojave/)
- [PyCharm 2019.2.3](https://www.jetbrains.com/pycharm/)
- [Python 3.7.4](https://www.python.org/)
- [Django 2.2.5](https://github.com/django/django)
- [Django REST framework 3.10.3](https://github.com/encode/django-rest-framework)

## ORM query
```python
# import
from books.models import Book

Book
books.models.Book
```

### INSERT ONE
```python
# INSERT INTO books_book(name, price, introduction) VALUES ('Hello', 150, 'This is a book.');
Book.objects.create(name="Hello", price=150, introduction='This is a book.')

# INSERT INTO books_book(name, price, introduction) VALUES ('Hello2', 150, 'This is a book.');
Book.objects.create(name="Hello2", price=150, introduction='This is a book.')

# INSERT INTO books_book(name, price, introduction) VALUES ('Hello3', 150, 'This is a book.');
Book.objects.create(name="Hello3", price=150, introduction='This is a book.')

```

### SELECT ALL
```python
# SELECT * FROM books_book;
Book.objects.all()
, , ]>

Book.objects.all().query

print(Book.objects.all().query)
SELECT "books_book"."id", "books_book"."name", "books_book"."price", "books_book"."introduction" FROM "books_book"
```

### SELECT ONE
```python
# SELECT * FROM books_book WHERE id=1;
Book.objects.get(pk=1)

print(Book.objects.get(pk=1))
Book object (1)

# SELECT * FROM books_book WHERE price=150;
Book.objects.filter(price=150)
, , ]>

# SELECT * FROM books_book WHERE price=150 LIMIT 2;
Book.objects.filter(id__lte=2)
, ]>

# SELECT * FROM books_book ORDER BY id;
Book.objects.order_by('id')
, , ]>

# SELECT * FROM books_book ORDER BY id DESC;
Book.objects.order_by('-id')
, , ]>

# SELECT * FROM books_book ORDER BY RAND();
Book.objects.order_by('?')
, , ]>
```

### UPDATE ONE
```python
# SELECT * FROM books_book WHERE id=1;
Book.objects.get(pk=1)

# SELECT id FROM books_book WHERE id=1;
book.id
1

# UPDATE books_book SET price=300 WHERE id=1;
book.price = 300

book.save()
```

### UPDATE MANY
```python
# INSERT INTO books_book(name, price, introduction) VALUES ('Hello2', 150, 'This is a book.');
Book.objects.create(name="Hello2", price=150, introduction='This is a book.')

# INSERT INTO books_book(name, price, introduction) VALUES ('Hello4', 200, 'This is a book.');
Book.objects.create(name="Hello4", price=200, introduction='This is a book.')

# INSERT INTO books_book(name, price, introduction) VALUES ('Hello5', 100, 'This is a book.');
Book.objects.create(name="Hello5", price=100, introduction='This is a book.')

# INSERT INTO books_book(name, price, introduction) VALUES ('Hello6', 500, 'This is a book.');
Book.objects.create(name="Hello6", price=500, introduction='This is a book.')

# INSERT INTO books_book(name, price, introduction) VALUES ('Hello7', 250, 'This is a book.');
Book.objects.create(name="Hello7", price=250, introduction='This is a book.')

# SELECT * FROM books_book WHERE price=200;
Book.objects.filter(price=200)
]>

# SELECT * FROM books_book WHERE price>=200;
Book.objects.filter(price__gte=200)
, , , ]>

# UPDATE books_book SET name='World' WHERE price>=200;
Book.objects.filter(price__gte=200).update(name='World')
4
```

### DELETE ONE
```python
# SELECT * FROM books_book WHERE id=2;
book = Book.objects.get(pk=2)

# SELECT id FROM books_book WHERE id=2;
book.id
2

# DELETE FROM books_book WHERE id=2;
book.delete()
(1, {'books.Book': 1})
```