Django C.R.U.D(1)


Djangoコンセプト
フレームワークとは?
Django web frameworkを使用してアプリケーションを開発するコアURLConf、View、Modelでモデルを作成し、ORMを使用してデータベースにテーブルを作成し、データを作成、クエリー、変更、削除する方法をまとめました.

こうりゅう

Django project&アプリケーションの作成


Djangoは仮想環境で作業するのに適しています.
仮想環境をプロジェクト名として命名し、新しいdjangoプロジェクトを作成します.
(リポジトリアイテムをどのディレクトリに入れても構いません)django-admin startproject westarbucks<プロジェクト名>で新しいアプリケーションにアクセスして生成します.(たとえば、Productsという名前のアプリケーションを作成する)cd westarbucks python manage.py startapp products

データベースの作成


別のターミナルウィンドウでデータベースを作成します.
$ mysql.server start

$ mysql -u root -p

mysql> create database "NAME" character set utf8mb4 collate utf8mb4_general_ci;
データベース名は「NAME」にあります

Django Westarbucksで設定します。py設定


IP ALLOWED_HOSTS = ['*']の許可
INSTALLED APPS/MIDLEWAREコメントadmin, csrf, authアプリケーションが作成されている場合は、INSTALLED APPS「products」に追加します.

MySQLデータベースとの連携

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 명',
        'USER': 'root',
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

products/models.pyの作成


生成されたアプリケーションのモデル.pyにクラスコードを入力
# 예시
from django.db import models

class Menu(models.Model):
    name = models.CharField(max_length=20)

    class Meta:
        db_table = "menu"


class Category(models.Model):
    name = models.CharField(max_length=20)
    menu = models.ForeignKey('Menu', on_delete=models.CASCADE)

    class Meta:
        db_table = "category"

class Drink(models.Model): 
    name = models.CharField(max_length=50)
    category = models.ForeignKey('Category', on_delete=models.SET_NULL, null=True)
    allergy_drink = models.ManyToManyField("Allergy", through = "AllergyDrink")

    class Meta:
        db_table = "drinks"

class Image(models.Model):
    image_url = models.URLField(max_length = 2000)
    drink = models.ForeignKey('Drink', on_delete=models.CASCADE))

    class Meta:
        db_table = "image"
整理は何ですか.on_delete=models.CASCADE on_delete=models.SET_NULL, null=True

migrate


models.py入力が完了したら管理します.pyがあるディレクトリに来ます.$ python managy.py makemigrations入力$ python managy.py migrate(model.pyを変更するたびに入力する必要があります.)

mysql server start


さっきmysqlデータベースを作成したターミナルウィンドウに来ました.
入力$ mysql.server start$ mysql -u root -p mysql> show databases;データベース名mysql> use westarbucks; useを入力mysql> show tables;で生成されたテーブルのリストを表示mysql> select * from menu; mysql> select * from category; mysql> select * from <생성된 table이름>;

python manage.py shell


manage.pyが存在するディレクトリに移動し、pythonを管理します.py shell入力後
入力データ
(model.pyで作成したclassを必ずインポートしてください!)
from products.models import Menu, Category, Drink
menu = Menu.objects.create.(name="")queryset API
データ入力後、mysqlでselect*fromで確認