Web Application with Django

Henry Lee·2020년 12월 30일
0
post-thumbnail

Django는 MVT

  • Model (~db; python manage.py makemigrations & python manage.py migrate)
from django.db import models


class Coffee(models.Model):
    name = models.CharField(default="", max_length=50)
    price = models.IntegerField(default=0)
    is_ice = models.BooleanField(default=False)
    stock = models.IntegerField(default=0)

    def __str__(self):
        return self.name
  • View
from django.conf.urls import url
from django.shortcuts import redirect, render
from .models import Coffee
from .forms import CoffeeForm


def index(request):
    return render(request, "index.html", {})

# methods = ["GET", "POST"]
# "GET"은 default
def coffee_view(request):
    coffee_list = Coffee.objects.all()
    if request.method == "POST":
        coffee_form = CoffeeForm(request.POST)
        if coffee_form.is_valid():
            coffee_form.save()
    coffee_form = CoffeeForm()

    return render(
        request, "coffee.html", {"coffee_list": coffee_list, "form": coffee_form}
    )
  • Template
{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cafe Henry</title>
    <link rel="stylesheet" href="{% static 'css/coffee.css' %}">
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Lobster&display=swap" rel="stylesheet">
</head>
<body>
    <h1>Cafe Henry</h1>
    <div class="container">
        {% for coffee in coffee_list %}
        <div class='card'>
            <div class="info">
                <div class="card_name">{{coffee.name}}</div>
                <div class="card_price">₩ {{coffee.price}}</div>
                <div class="card_ice">
                    {% if coffee.is_ice == True %}
                        Iced
                    {% else %}
                        Hot
                    {% endif %}
                </div>
            </div>
            <div class="func">
                <div class="card_stock">Stock: {{coffee.stock}} cup(s)</div>
                <div class="control">
                    <a class='edit' href='edit/{{coffee.pk}}'>edit</a>
                    <a class='delete' href='delete/{{coffee.pk}}'>delete</a>
                </div>
            </div>
        </div>
        {% endfor %}

        <form method='POST'>
            <h2>Add new</h2>
            {% csrf_token %}
            {{ form.as_p }}
            <button type='submit'>save</button>
        </form>
    </div>

    
</body>
</html>
profile
Today I Learned. AI Engineer.

0개의 댓글