Djangoを使い始めるためのメモ:pipenv環境の場合
どうも手元のチュートリアルでは、pipで進めようとしていて、
Anacondaで続けると、途中で噛み合わないので、やり直し。
まずは、それ用のディレクトリ作成し、仮想環境を実行する。
mkdir #appディレクトリ名
cd #app名
pipenv install django==2.0.6
pipenv shell
仮想環境が実行されていることを確認し、
次に、djangoプロジェクトの下準備。
django-admin startproject #プロジェクト名 .
python manage.py startapp #app名
python manage.py migrate
python manage.py runserver
#プロジェクト名/settings.py に、作ったapp名を登録する。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app名', #ここに書き足す。文末のカンマを忘れずに。
]
------
データベースのモデルを設定する。
#app名/models.py
from django.db import models
# Creatte your models here.
class #class名(models.Model):
def __#型__(self):
return self.#名
つくったら、コマンドライン上でmigrateする。
python manage.py makemigrations #app名
python manage.py migrate #app名
migrateが済んだら、管理者権限のユーザーを生成する。
python manage.py createsuperuser
-------
url遷移ができるように、設定を行う。
#app名内に、urls.py を生成する。
#コマンドライン(windows)からの場合、
type nul > #app名/urls.py
#app名/urls.pyの中身を編集しておく。
from django.urls import path
from . import views
urlpatterns = [
path('', views.BlogListView.as_view(), name = 'home'),
]
#project名/urls.pyの中身も
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
#増えたら、ココにいろいろ書き足していく。
#例
path('', include('blog.urls')),
]
view.pyの中身も編集しておく。
from django.views.generic import ListView
from . models import Post
# Create your views here.
class BlogListView(ListView):
model = Post
template_name = 'home.html'
そして、templatesフォルダ内に、.htmlファイルを作る。
mkdir templates
type nul > templates/base.html
type nul > templates/home.html
それが済んだら、
#project名内、settings.pyのtemplates読み込みに、
そのtemplatesフォルダを対象に設定する。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['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',
],
},
},
]
------
htmlファイルの編集。
とりあえずは、base.htmlと、home.htmlを、
<!-- base.html -->
<!DOCTYPE html>
{% load static %}
<html>
<head>
<title>/* タイトル */</title>
/*↓は、後で使う、css設定 */
<link rel="stylesheet" href="{% static 'css/base.css' %}">
</head>
<body>
<header>
<h1><a href="/">/* ヘッダータイトル */</a></h1>
</header>
<div class ="container">
{% block content %}
{% endblock content %}
</div>
</body>
</html>
<!-- home.html -->
/* これで、base.htmlと紐づく */
{% extends 'base.html' %}
/* こっからが中身 */
{% block content %}
{% endfor %}
/* これで、base.htmlと紐づくやつ、終了のタグ */
{% endblock content %}
------
cssの設定。
まずは、staticディレクトリをつくり、そこのパスを紐付ける。
#プロジェクト名/settings.pyの、最下段"STATIC_URL = '/static/'"の下に書く
STATICFILES_DIR =[os.path.join(BASE_DIR, 'static')]
ローカルはこれで構わないけど、
herokuにデプロイすると、なぜかCSS反映されない。
公式曰く、次のように直すとよいらしい。
https://devcenter.heroku.com/articles/django-assets
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
そうしたら、staticディレクトリ内に、
css用のフォルダと、ディレクトリを生成。
mkdir static/css
type nul > static/css/base.css
とりあえずは、こんな感じではなかろうか。
あとは、Git設定したり、Herokuの設定をしたり。
でも、まあ、そこまでここで書かなくてよいか。
なにか間違って書いてあるところあれば、ご指摘下さい。
この記事が気に入ったらサポートをしてみませんか?