Django
[Django App 2-1] 북스토어 애플리케이션 개발
Liiot
2020. 1. 7. 00:56
models.py
from django.db import models
class Book(models.Model):
code = models.CharField(max_length=10, primary_key=True)
name = models.CharField(max_length=100, blank=True, null=True)
author = models.CharField(max_length=100, blank=True, null=True)
price = models.IntegerField()
url = models.URLField('url', unique=True)
def __str__(self):
return self.name
admin.py
from django.contrib import admin
from .models import Book
class BookAdmin(admin.ModelAdmin):
list_display = ('code', 'name', 'author', 'price', 'url')
admin.site.register(Book, BookAdmin)
urls.py
from django.contrib import admin
from django.conf.urls import re_path
from bookstore.views import *
urlpatterns = [
# path('admin/', admin.site.urls),
re_path(r'^admin/', admin.site.urls),
re_path(r'^bookstore/$', BookListView, name='list'),
re_path(r'^bookstore/(?P<code>b\d+)/$', BookDetailView, name='detail')
]
views.py
from django.shortcuts import render, get_object_or_404
from .models import Book
def BookListView(request):
books = Book.objects.all()
return render(request, 'book_list.html', {'books': books})
def BookDetailView(request, code):
book = get_object_or_404(Book, code=code)
return render(request, 'book_detail.html', {'book': book})
book_list.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>BookStore</title>
</head>
<body>
<div>
<h1>Book List</h1>
<ul>
{% for book in books %}
<li><a href="{% url 'bookstore:detail' book.code %}"> 제목: {{book}}</a><br>저자: {{book.author}}</li>
{% endfor %}
</ul>
</div>
</body>
</html>
book_detail.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Bookstore</title>
</head>
<body>
<div>
<h1>{{book}}</h1>
<h3>{{book.author}}</h3>
<ul>
<li> 가격 : {{book.price}}원</a></li>
<li> 구매링크 : <a href= '{{book.url}}'>{{book.url}}</a></li>
</ul>
</div>
</body>
</html>