Python
Django
メモ
備忘録

[備忘録]python&djangoを少し触れてみる

python & djangoを学び始めたので忘れないように( ..)φメモメモ

環境設定

参考1:「Anaconda で Python 環境をインストールする

参考2:「Visual Sturio CodeでPythonコーディングをする設定

% conda install --channel https://conda.anaconda.org/anaconda pylint
  • djangoインストール:
% conda install --channel https://conda.anaconda.org/anaconda django
  • 環境変数設定

PATH に [\Anaconda3\envs\python\Scripts] , [\Anaconda3\envs\python] を設定

※ python は Annaconda で設定したプロジェクト名

djangoはじめる

参考:「Djangoを最速でマスターする part1

  • プロジェクト作成
% django-admin startproject PROJECT_NAME
  • アプリケーション作成
% python manage.py startapp APP_NAME

setting.py にアプリケーション設定をする

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'APP_NAME',  # 追加
]

Model

  • Model作成(model.py)
from django.db import models

class MyModel(models.Model):
  field = models.CharField(max_length=20)

※ django2.0からForeignKey on_deleteは必須

種類 説明
CASCADE 参照元が削除されたら一緒に削除される
PROTECTED 参照がある場合は参照元を削除させない
SET_NULL 参照元が削除されたらNULLを設定する(NULL許容設定要)
SET_DEFAULT 参照元が削除されたらデフォルト値を設定する(default=設定要)
SET( ) 参照元が削除された場合の処理を指定する

参考:「 Django:モデルフィールドリファレンスの一覧

  • migration 作成
% python manage.py makemigrations APP_NAME
  • データベース反映
% python manage.py migrate

オブジェクト操作

  • python shell 起動
% python manage.py shell
  • オブジェクト作成
MODEL_NAME.objects.create(kwargs)
obj = MODEL_NAME(kwargs)
obj.save()
  • オブジェクト取得
MODEL_NAME.objects.get(key=value)

※ viewなどで取得する場合はこちら

from django.shortcuts import get_object_or_404

get_object_or_404(MODEL_NAME, key=value)
  • オブジェクト削除
obj.delete()

Django Admin

  • スーパーユーザーの作成
% python manage.py createsuperuser
Username:
Email address:
Password:
Password (again):
Superuser created successfully.

View

  • view作成(views.py)
from django.shortcuts import render, redirect, get_object_or_404
from django.views.generic import TemplateView

class MyView(TemplateView):
    template_name = "template.html"

    def get(self, request, *args, **kwargs):
        context = super(MyView, self).get_context_data(**kwargs)
        return render(self.request, self.template_name, context)

参考:「Djangoにおけるクラスベース汎用ビューの入門と使い方サンプル

  • urls.py に追加
from django.contrib import admin
from django.urls import path

import APP_NAME.views as myviews

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myview/', myviews.MyView.as_view())
]

template

種類 コード
変数 {{ }}
コメント {# #}
タグ {% %}
フィルター {{ var|filter }}

ページを表示

  • サーバー起動
% python manage.py runserver