21.2.24
<Django CRUD 1>
スターバックスのウェブサイト上の飲料と食品情報データベースとモデル。PyのORM実践の挑戦
1.仮想環境の設定
仮想環境を設定する理由:分離バージョンとパッケージを取得するために複数のプロジェクトを行います.つまり、プロジェクトのために新しい紙を1枚出します.
まず端末にcondaをインストールします.
インストール手順は次のとおりです.
ダウンロード・ホームページからリンクのurlを取得します(バージョン3.7).wget+urlリンクにダウンロードします.
仮想環境設定のcondaを実行します.
指導者と一緒に解決した結果、コンダのパスを変更し、端末の実行時に自動的に実行するように設定しました.具体的な方法が分からないので、後で似たような間違いがあったら試してみるべきです.
conda create -n "westarbucks" python=3.7
conda activate westarbucks
source activate westarbucks
で解決できます.->仮想環境名はプロジェクト名と同じにする必要があります.
conda deactivate
を実行します.仮想環境の設定が完了したら、djangoとmysqlclientをインストールします.
方法はpip install~.
->仮想環境を確認してください()
インストール完了後
django-admin startproject westarbucks
cd westarbucks
python manage.py startapp products
アクティブなプロジェクトとアプリケーションを使用します.データベースを設定します.
mysql -u root -p ; +비밀번호
create database westarbucks character set utf8mb4 collate utf8mb4_general_ci;
を選択して、データベース名を指定します.ここで指定したデータベース名は後でチャングセティンスファイルに直接書けばいいです.2. settings.py設定
settings.pyはプロジェクトの「脳」部分なので、最も重要です.設定は難しいですが、守らなければならないことを守っていれば、すぐにできます.
ALLOWED_HOSTS = ['*']
未使用の要素にコメント処理を行います.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'westarbucks',
'USER': 'root',
'PASSWORD': 'sql칠 때 쓰던 것',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
3. models.綴じ物
まずは
指導者は、「それだけでなく、Python Shellで行われた一連の過程はORMの過程だ」と尖った.
CharffieldはSQLでVARCHARの役割(すなわちテキスト)として機能します.
DecimalFieldは小数点です(合計何桁+小数点を何個マークしますか?)
最後にForeignKeyも
△何もつながっていなければ、Forin Keyがないと書いてもいいです.
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 = "categories"
class Drink(models.Model):
korean_name = models.CharField(max_length=50)
english_name = models.CharField(max_length=50)
description = models.CharField(max_length=100)
category = models.ForeignKey('Category', on_delete=models.CASCADE)
class Meta:
db_table = "drinks"
class Image(models.Model):
image_url = models.CharField(max_length=2000)
drink = models.ForeignKey('Drink', on_delete=models.CASCADE)
class Meta:
db_table = "images"
class Allergy(models.Model):
name = models.CharField(max_length=50)
class Meta:
db_table = "allergies"
class Allergy_drink(models.Model):
allergy_drink = models.ForeignKey('Allergy', on_delete=models.CASCADE)
drink = models.ForeignKey('Drink', on_delete=models.CASCADE)
class Meta:
db_table = "allergy_drinks"
class Nutrition(models.Model):
one_serving_kcal = models.DecimalField(max_digits=5, decimal_places=2)
sodium_mg = models.DecimalField(max_digits=5, decimal_places=2)
saturated_fat_g = models.DecimalField(max_digits=5, decimal_places=2)
sugars_g = models.DecimalField(max_digits=5, decimal_places=2)
protein_g = models.DecimalField(max_digits=5, decimal_places=2)
caffeine_mg = models.DecimalField(max_digits=5, decimal_places=2)
size_ml = models.CharField(max_length=50)
size_fluid_ounce = models.CharField(max_length=50)
drink = models.ForeignKey('Drink', on_delete=models.CASCADE)
class Meta:
db_table = "nutritions"
質問は条件によって(模範解答)メニュー、カテゴリ、飲み物、アレルギー飲料、栄養素、イメージ、アレルゲンに分けられ、id値からどの値が長いかを判断します.これは復習が必要な部分です.よく漏れている部分settingsですpyinstallセクションでは、必ずアプリケーションを追加します.
4.データおよびクエリーレポートデータベースCRUDの作成を試みる
優先パラメータ:まず左がVSC+端末/右がMysqlです.
長時間の環境で変更が完了した場合は、データベースに送信する操作が必要です.これは.
->そうすると、頭文字fiというパターンが生まれます.つまり、作業履歴を保存します.
プッシュ:Python manage.py migrate
python manage.py shell
そして今回のモデル派の全体的なレベルを持ってきて、importは以下のようにします.from products.models import *
後続のid値、すなわちfolinキー値を入力する必要がある場合は、C操作時に変数として予め作成し、テーブル作成時に後続のクラスに挿入します.
m1 = Menu.objects.create(name="음료")
Category.objects.get(name="콜드 브루", menu=m1)
ここでcreateで変数を作成し、次のテーブルでcreateで変数を作成することで、4つのテーブルではなく8つのテーブルが生成されます.すなわち,作成中に変数を同時に宣言し,必要であればgetを用いることができる.
getは、1つの要素をインポートする場合にのみ使用できます.この場合に使用できます.
>>> from products.models import *
>>> c1 = Category.objects.get(name="콜드 브루")
>>> c2 = Category.objects.get(name="블렌디드")
>>> c3 = Category.objects.get(name="브레드")
>>> c4 = Category.objects.get(name="케이크")
>>> Drink.objects.create(korean_name = "나이크로 바닐라 크림", english_name="Nitro Vanila Cream", description = "부드러운 목넘김의 나이트로 커피와 바닐라 크림의 매력을 한번에 느껴보세요!", category=c1)
<Drink: Drink object (1)>
>>> Drink.objects.create(korean_name = "제주 비자림 콜드브루", english_name="Jeju Forest Cold Brew", description="[제주지역 한정음료] 제주 천년의 숲 비자림을 연상시키는음료로 제주에서 유기농 말차로 만든 파우더와 Cold Brew를 활용한 음료.", category=c1) <Drink: Drink object (2)>
>>> Drink.objects.create(korean_name = "망고패션후르츠", english_name="Mango Passion Fruit Blended", description="망고 패션 후르츠 주스와 블랙 티가 깔끔하게 어우러진 과일 블렌디드", category=c2)
<Drink: Drink object (3)>
>>> Drink.objects.create(korean_name = "딸기요거트블렌디드", english_name="Strawberry Yogurt Blended", description="딸기와 요거트의 상큼함이 가득 느껴지는 가벼운 과일 블렌디드", category=c2)
Class명.objects.filter(age=33;예시).update(job=FireFighter)
delete : Class명.objects.filter(위동일).delete()
ここで削除したいidまたはアイテム名を設定すると、セル全体を削除できます.実際、createプロセスが2回なければ、このプロセスは知りません.
一連のプロセスが繰り返されると、結果が出力されます.
このような過程です必ずもう一度やってみます.(再試行完了)
Reference
この問題について(21.2.24), 我々は、より多くの情報をここで見つけました https://velog.io/@sinichy7/21.2.24-95w9q3m5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol