Django#1ベース環境の設定



仮想環境


独立したスペース(各アイテムは影響を受けません)
仮想環境にデバイスがインストールされている場合は、他の仮想環境と連携できません.

仮想環境の作成

  • python -m venv <가상환경이름>

  • venv = virtual environment
  • 仮想環境の実行

  • source <가상환경이름>/Scripts/activate
  • 仮想環境のシャットダウン

  • deactivate
  • pipパッケージ


    Pythonによって作成されたパッケージをインストールおよび管理するためのパッケージ管理システム
    Django=pipパッケージ

    インストールエラー

    pip install django

    障害の削除

    pip uninstall django

    特定のバージョンのトラブルシューティングのインストール

    pip install django==<버전>

    vscodeヒント


    bashに変更

    select default shell, git bash에서 code .

    Django


    長期プロジェクトの作成

    django-admin startproject <project 이름>

    障害サーバの実行

    python manage.py runserver

    App


    プロジェクトのコンポーネント
    アプリケーションを作成する必要がない場合でも、コードの可用性を確保するためにアプリケーションを作成できます.

    アプリケーションの作成

    python manage.py startapp <app 이름>Appフォルダに「templates」フォルダを個別に作成する必要があります
    「templates」フォルダにユーザーに表示する画面(html)を含める
    アプリケーション作成後のプロジェクトの設定.pyに通知する必要があります

    INSTALLED APPSに追加

    <app이름>.apps.<첫글자대문자app이름>Configテンプレート内のユーザーがいつ、スクリーン(html)をどのように処理するかをユーザーに伝える関数を追加する必要があります.

    views.pyに追加

    def home(request):
        return render(request, <템플릿 이름>, <딕셔너리>)
    私が作成したhtmlはurlを入力すると表示されます.

    url.pyに追加

    path('', myapp.views.home, name="home")名前付き理由:関数名が変更される場合があります.

    テンプレート言語


    https://docs.djangoproject.com/en/3.0/ref/templates/language/#templates

    テンプレート変数

    {{ python_value }}

    テンプレートフィルタ


    テンプレート変数に追加のプロパティと機能を提供

    {{ python_value | filter }}

    長さ

    {{ value | length }}

    小文字で書く

    {{ value | lower }}

    テンプレートタグ


    htmlでPython構文を使用したりurlを作成したりする機能

    {% tag %} ... 태그 내용 ... {% endtag %}

    {% for students in class %} {{students}} {% endfor %} {% url 'url_name' %}「テンプレート継承」を参照

    入力値

    request.GET['<입력한 값>']

    djangoではStatic(CSS、メディア、...)適用


    https://nachwon.github.io/django-deploy-4-static/
    https://crynut84.github.io/2016/11/14/django-static-file/

    Model

  • データの接続と管理を支援するオブジェクト
    (データベースがDjangoを理解していないため)
  • モデルの作成&サンプル適用


    models.py
    class Designer(models.Model): # models.Model 을 상속
        image = models.ImageField(upload_to = 'images/') # FileField + height + width
        name = models.CharField(max_length = 50)
        address = models.CharField(max_length = 255)
        description = models.TextField()
    
        # Designer 대표하는 이름
        def __str__(self):
            return self.name
    コメントサイト
    https://docs.djangoproject.com/en/3.0/ref/models/fields/

    Pillow


    ImageField用パッケージ
    Terminal
    翻訳は
  • DBpython manage.py makemigrations
  • 翻訳されたコンテンツをDBに適用python manage.py migrate
  • コメントサイト
  • https://nachwon.github.io/django-5-database/
  • Admin機能


    Terminal
    先に移行する必要があります
  • python manage.py createsuperuser

  • admin.py
  • from .models import Designer
    admin.site.register(Designer)
    コメントサイト
    https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#modeladmin-objects

    QuerySet


    渡されたモデルのオブジェクトのリスト
    # Model의 존재 알려주기
    from .models import Designer
    
    # QuerySet을 Templates로 보내는 예시
    def home(request):
        designers = Designer.objects.all()
        return render(request, 'home.html', {'designers': designers})

    Detail Page


    PK (Primary Key)


    ユニークなKey は、
  • モデルによって作成されたオブジェクトを区別するために使用されます.

    Path Convertor


  • 複数のオブジェクトのurlを階層的に処理するためのツール

  • urls.py
  • path('profile/<int:designer_id>/', views.detail, name="detail"),
    コメントサイト
    https://docs.djangoproject.com/en/3.0/ref/urls/#django.urls.path

    Template

  • {% url 'detail' designer.id %}
  • get_object_or_404


    オブジェクトをインポートしようとしたが、オブジェクトがないことを示すエラーです.
    views.pyのpk変数名とurls.pyの変数名は同じでなければなりません!

    views.py

    from django.shortcuts import render, get_object_or_404
    
    def detail(request, designer_id):
        designer = get_object_or_404(Designer, pk = designer_id)
        return render(request, 'detail.html', {'designer': designer})