[Back] Django


🧐 Today I Learned (TIL)

  • Django取付
  • Djangoベース
  • 1.Djangoのインストール


    macでpythonを実行すると、デフォルトのインストールの2.7バージョンが実行されます.したがって、v 3を使用してインストールと変更を行うことができます.
    # python3 설치
    brew install python3
    echo "alias python=/usr/local/bin/python3" >> ~/.zshrc
    echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc
    source .zshrc
    
    # Django 설치
    python -m pip install Django

    2.Djangoベース


    Djangoドキュメントのアンケートアプリ作成チュートリアルで行います.

    2-1. プロジェクトの作成


    プロジェクトを作成すると、最も重要なファイルは3つあります.
  • manage.py(完全な障害サーバを実行するプライマリファイル)
  • settings.py(複数の構成が作成されたファイル)
  • urls.py(URL処理ファイル)
  • django-admin startproject mysite

    2-2. プロジェクトの実行


    最も基本的な構成項目で実行され、デフォルトで提供されている画面を表示できます.
    python manage.py runserver

    2-3. ルート


    チュートリアルの指示に従ってアンケートアプリを作成します.
    python manage.py startapp polls
    コードを変更して実行すると、接続時にmysiteディレクトリのurls.pypath('polls/', include('polls.urls'))コードを介してポーリングディレクトリのurls.pyルーティングをチェックできます.

  • admin.py
    これはユーザー用のファイルです.

  • models.py
    データベースにアクセスするファイル.

  • views.py
    ビジネスロジックを含むファイル.
  • 2-4. モデリング


    一部の基本アプリケーションでは、少なくとも1つのデータベース・テーブルが使用されます.したがって、データベースはmigrateコマンドを発行してテーブルを事前に作成します.(デフォルトデータベースSQLiteを使用)
    python manage.py migrate
    models.pyは、データベースモデリング用のファイルです.同様に、チュートリアルmodels.pyに従ってQuestionクラスとChoiceクラスを定義し、settings.pyファイルでINSTALLED_APPSを変更して、現在のプロジェクトに投票アプリケーションがインストールされていることを通知します.makemigrations命令を実行することによって、models.pyに定義された内容に従って0001_initials.pyファイルを生成することが決定される.
    python manage.py makemigrations polls
    0001_initials.pyファイルを使用して、内部で実行されるSQL文を確認できます.
    python manage.py sqlmigrate polls 0001
    最後にShellを開き、データベースにデータを入れて確認します.
    python manage.py migrate
    python manage.py shell
    >>> from polls.models import Choice, Question
    >>> from django.utils import timezone
    >>> q = Question(question_text="What's new?", pub_date=timezone.now())
    >>> q.save()
    >>> Question.objects.all()
    >>> q.question_text
    >>> q.question_text = 'hey'
    >>> q.save()
    >>> q.question_text
    >>> q.pub_date
    >>> Question.objects.get(pk=1)

    2-3. 管理者


    Djangoは基本的な管理者ページを提供しています.migrationから管理者ページに移動できます.
    python manage.py createsuperuser
    Username: admin
    Email address: [email protected]
    Password:
    
    python manage.py runserver

    チュートリアルのようにhttp://127.0.0.1:8000/admin/ファイルを変更し、管理者のWebサイトに変更可能なポーリングアプリケーションを設定すると、データベースで生成されたテーブルを操作できます.

    2-4. 表示


    ビューは、Djangoアプリケーションが通常特定の機能とテンプレートを提供するページです.チュートリアルに従って行うと、通常のhtmlドキュメントとは異なり、admin.pyを使用して作成されていることがわかります.
    {% if latest_question_list %}
        <ul>
        {% for question in latest_question_list %}
            <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
        {% endfor %}
        </ul>
    {% else %}
        <p>No polls are available.</p>
    {% endif %}
    チュートリアルでは、詳細に閲覧できるページをPath Variableで整理し、閲覧できないコンテンツに対して404ページを整理します.さらに、urlハードコーディングコードを削除する方法、または{% %}で提供される関数を使用してコードをより簡便に記述する方法についても説明する.
    <!-- 하드 코딩 -->
    <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
    
    <!-- 하드 코딩 제거 -->
    <li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>


    2-5. 棚


    チュートリアルに従うと、フォームに入力した結果がDBに反映されるように構成されます.


    📚 リファレンス

  • https://docs.djangoproject.com/ko/3.2/intro/
  • https://yechoi.tistory.com/54