TIL31 - Starbucks with Django(2/3)


Starbucks with Django


全編 ..そして...設定が完了したら、本章で
1.バニラのアップロード
2.Djangoアプリケーションの起動
この二つのことをするつもりです.

1. git


まずリポジトリを作成
v_westarという名前のリポジトリを作成しました.
(たぶん本当に新しく作ったもので、何もないイメージ)

そしてgitコマンドを端末で実行します
まず、実行プロセスの画像を見てみましょう.




1. git init
gitにコマンドを入力
2. git add .
アップロードするファイルをカートに入れ、アップロードするディレクトリファイルを準備します
3. git commit -m message
送信時には、通常、メールに変更された内容が書かれます.
私は初めてアップロードしたとメッセージを送った.
4. git remote add origin url
タグURLをリポジトリとして指定
5. git push origin master
タスクが完了したことを通知するには、pushを使用して襟に掛けてください.

これでこのように上がってきたことがわかります

1-1. gitignore


前の文章のmy settings.pyは重要な情報を含んでいます
そんな書類を書いた.
しかし、Gitにファイルがアップロードされると、誰もがそれを見ることができます.
gitに乗れません.
だから使ったのはgitignoreファイル.
まず、プロジェクトの最上位ディレクトリにこのファイルを作成します.
touch .gitignore
ネット上のgitinoreもioを検索してキーワードを入力して生成

そうするとこのように出てきますが、内容はコピーされますgitignoreに貼り付け

次に、このファイルにmy settingsを設定します.pyを入力して保存すると終了します

1-2. branch


今、ワークスペースとしてブランチをインストールする必要があります.
git checkout -b b1
このように入力すると、b 1というブランチを作成し、私のワークスペースをブランチに変更することを意味します.

1-3. push


今提出してPushを試してみましょう.
ただし、コミット後に次のコマンドを入力する必要があります.
git push origin b1
これは、ブランドb 1の襟にアップロードすることを意味します.

これでpull requestが来て、
ブランチで働いているものをプライマリノードにマージしたいからです.
つまり、みんなに要求すべきだということです.

これで私が書いた情報がタイトルになります.
マスターがrequestを受け入れるために内容に文章を残したのです.

リクエストを受け入れた後、「Merge Pull Request」をクリックして最後のマージを完了します.
my settingsかと思ったけどPyは生きてる

1-4. gitの削除


だから襟を置いてアップロードすることにしました.
プロジェクトの場所に、次のコマンドを入力します.
rm -rf .git
そして羽根初期化から再開
1. git init
2. git add .
3. git commit -m message
4. git remote add origin URL
5. git push origin master -f
    (fが強制的に実行されることを示す)

これでファイルが再アップロードされます.my settings.pyはありません!

2.アプリケーションの作成


次のコマンドを入力して設定します.pyの変更
python manage.py startapp products
#settings.py

INSTALLED_APPS = [
...
	'products',
]

3. DB Modeling


こちらです。ドラムストリームを表示するときに、モデル(models.py)からDBにアクセスします.
彼はデータを管理/操作すると言った.
今はモデルpy上でスターバックスデータベースをモデリングしましょう.
誰かが見るかどうかは分からないが、見ても上のコードを見る人がいるような気がします.
テーブルについて説明しないでスキップしましょう
#models.py

from django.db import models

# Create your models here.
class Menu(models.Model) :
    name = models.CharField(max_length=20)

    class Meta :
        db_table = 'menus'

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

    class Meta : 
        db_table = 'categories'

class Nut(models.Model) :
    one_serving_kcal = models.DecimalField(max_digits=6,decimal_places=2)
    sodium_mg = models.DecimalField(max_digits=6,decimal_places=2)
    saturated_fat_g = models.DecimalField(max_digits=6,decimal_places=2)
    sugars_g = models.DecimalField(max_digits=6,decimal_places=2)
    protein_g = models.DecimalField(max_digits=6,decimal_places=2)
    caffeine_mg = models.DecimalField(max_digits=6,decimal_places=2)
    size_ml = models.CharField(max_length=20)
    size_fluid_ounce = models.CharField(max_length=20)

    class Meta :
        db_table = 'nutritions'

class Product(models.Model) :
    category = models.ForeignKey('Category', on_delete=models.CASCADE)
    kor_name = models.CharField(max_length=20)
    eng_name = models.CharField(max_length=20)
    desc = models.TextField()
    nutr = models.OneToOneField('Nut', on_delete=models.CASCADE)

    class Meta :
        db_table = 'products'

class Images(models.Model) :
    img_url = models.CharField(max_length=2000)
    product = models.ForeignKey('Product', on_delete=models.CASCADE)

    class Meta :
        db_table = 'image'

class Allergy(models.Model) :
    name = models.CharField(max_length=1000)

    class Meta :
        db_table = 'allergy'

class allergyProducts(models.Model) :
    allergy = models.OneToOneField('Allergy', on_delete=models.CASCADE)
    product = models.OneToOneField('Product', on_delete=models.CASCADE)

    class Meta :
        db_table = 'allergyProducts'
次の移行を行う前にmakemigrationでチェックしてください
python manage.py makemigrations products

次にproductsフォルダのサブフォルダにmigrationsフォルダを作成します.
0001 initialsに入ると、テーブル構造が表示されます.

しかし不思議なことに、私はとっくに分類表にメニューバーを追加していました.
なぜテーブルが作成され、コラムが追加されるのかを見てみましょう.
テーブルの生成順序は、私の入力ではなく英語です.
テーブルの作成->カラムの作成はこのようなものです.
その後異常がなければ、migrationを行います
python manage.py migrate

0001ファイルで確認したDB構造に対してテーブルを生成した

それではデータをそのまま入れると最后の第3弾です.