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
def home(request):
return render(request, <템플릿 이름>, <딕셔너리>)
{{ value | length }}
{{ value | lower }}
(データベースが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
翻訳は
python manage.py makemigrations
python manage.py migrate
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})
Reference
この問題について(Django#1ベース環境の設定), 我々は、より多くの情報をここで見つけました https://velog.io/@minsgy/Django-1-기초-환경-세팅テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol