djangoとは
Pythonで実装されたwebアプリフレームワーク
ざっくりな流れ
アプリの構成(ベストプラクティス?)
APIを持つ場合は、こう
setting.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'], ←ここを修正
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
BASE_DIRはmanage.pyがある場所を指す。この場合manage.pyのある階層のtemplatesを指す
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'todo.apps.TodoConfig', ←追加
]
models.py
データを効率的の扱えるようにする仕組み(DB)
from django.db import models
# Create your models here.
class TodoModel(models.Model):
title = models.CharField(max_length=100)
memo = models.TextField()
def __str__(self):
return self.title
○○fieldは種類が結構あるので他で参照
mikemigrationsとmigrate
migrate
urlのadminで入れる
ユーザー作成は以下
python3 manage.py createsuperuser
どういうwebアプリに何に向いているか(触った感触)
- 管理機能系(付属DBでいいなら小さい機能なら直良)
- ヘルパー関数でユーザー単位に権限がつけれる、またログインチェックなど用意されており容易に実装可能
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login
def loginfunc(request):
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return render(request, 'login.html', {'context': 'logged in'})
else:
return render(request, 'login.html', {'context': 'not logged in'})
return render(request, 'login.html', {'context': 'get method'})
djangoでCRUDwebアプリ作りたいんだ!って人向けな気がする。またはモノレポ向け