##はじめに
Djangoの使い方~ウェブサイト作成編~の続きです。
この章ではログインページを作っていきます。
##ふりかえり
今いるディレクトリの確認方法
$ C:\Users\Name> cd
djangogirlsディレクトリへの移動方法
$ C:\Users\Name> cd djangogirls
仮想環境の実行方法
$ C:\Users\Name\djangogilrs> myvenv\scripts\activate
##新しいアプリケーションの作成
djangogirlsディレクトリで下のコマンドを実行します
$ (myvenv) C:\Users\Name\djangogirls> python manage.py startapp blog
新しくブログディレクトリが作られます。こんな感じです。
djangogirls ├── blog │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── db.sqlite3 ├── manage.py ├── mysite │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── requirements.txt
コードエディタでmysite/settings.pyを開いてください。
INSTALLED_APPS を見つけて ] の上に 'blog' という一行を追加します。こんな感じです。
mysite/settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog',
←これを追加した
]
##ブログポストモデルの作成
blog/models.py をエディタで開いて全部削除し、下のコードをコピペして下さい。
from django.db import modelsfrom
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
※strの横はダブルアンダースコア(__)です。
ざっくりと上のコードでやってること
コード | 役割 |
---|---|
from...import... | 他のファイルから引用する |
class Post(models.Model): | 今回のモデルを定義(オブジェクト) |
models.CharField | 文字数が制限されたテキストを定義 |
models.TextField | 制限無しの長いテキスト用 |
models.DateTimeField | 日付と時間のフィールド |
models.ForeignKey | 他のモデルへのリンク |
def publish(self): | 今回作るブログを公開するメソッド |
_str_() | ポストのタイトルのテキストを返す |
##データベースにモデルのためのテーブルを作成する |
コンソールで python manage.py makemigrations blogを入力。
下のようになります。
$(myvenv) ~/djangogirls > python manage.py makemigrations blog
Migrations for 'blog':
blog/migrations/0001_initial.py:
- Create model Post
Djangoが作ってくれた移行ファイルをデータベースに追加する。
コンソールでpython manage.py migrate blogを入力。
下のようになります。
$(myvenv) ~/djangogirls > python manage.py migrate blog
Operations to perform:
Apply all migrations: blog
Running migrations:
Applying blog.0001_initial... OK
これでポストモデルがデータベースに入りました!
##Django admin
今作成したポストを追加、編集、削除するのにDjango adminを使います。
blog/admin.pyファイルをエディタで開き、内容を下記に変えてください。
from django.contrib import adminfrom .models import Post
admin.site.register(Post)
admin.site.register(Post)→モデルをAdminページ(管理画面)上で見えるようにするためのコード
最後にログインページを確認します。コンソールで下を入力。
$ (myvenv) ~/djangogirls > python manage.py runserver
上を入力後ここを検索
##おわりに
次回はデプロイの準備をします!
次回→Djangoの使い方~デプロイ編①~