Djangoメモ(1) : 掲示板アプリを作成するチュートリアル
Django(PythonのWebアプリケーションフレームワーク)のチュートリアルを参考にDjangoで掲示板アプリケーションを作成してみる。
チュートリアル一覧
最初にチュートリアルを調べてみたところDjangoのチュートリアルとしては以下のものがあるようだ。
Django公式
(英語)Writing your first Django app, part 1 | Django documentation | Django
(日本語)はじめての Django アプリ作成、その 1 | Django documentation | Django
投票 (poll) アプリケーションを作成する。Djangoのバージョンは2.0。
Django Girls Tutorial
(英語)Introduction · Django Girls Tutorial
(日本語)イントロダクション · workshop_tutorialJP
ブログアプリケーションを作成する。Djangoのバージョンは1.11。
MDN Web Docs
Django Tutorial: The Local Library website - Learn web development | MDN
ローカルライブラリのオンラインカタログアプリケーションを作成する。Djangoのバージョンは2.0
Simple is Better Than Complex
A Complete Beginner's Guide to Django
掲示板アプリケーションを作成する。Djangoのバージョンは1.11
Mariana Mele's site
TaskBuster Django Tutorial | Marina Mele's site
タスクマネージャーアプリケーションを作成する。Djangoのバージョンは1.8
Django for Beginners
シンプルな掲示板、ブログアプリケーションを作成する。Djangoのバージョンは2.0
A Complete Beginner's Guide to Django
公式ページやDjango Girls Tutorialのチュートリアルは有名なので、今回は"Simple is Better Than Complex"の"A Complete Beginner's Guide to Django"をもとに掲示板アプリケーションを作成してみる。
チュートリアルにより完成するアプリは下記リンクで確認できる。
また、GitHubにリポジトリもあるので自分の環境で動かしてみる。
最初にgit clone
してパッケージをインストール。
$ git clone https://github.com/sibtc/django-beginners-guide $ cd django-beginners-guide $ pip install -r requirements.txt
requirements.txt
の中身は下記。
$ cat requirements.txt dj-database-url==0.4.2 Django==1.11.6 django-widget-tweaks==1.4.1 Markdown==2.6.9 python-decouple==3.1
設定は.env
ファイルで管理しているようなのでコピー。
$ cp .env.example .env $ cat .env SECRET_KEY=rqr_cjv4igscyu8&&(0ce(=sy=f2)p=f_wn&@0xsp7m$@!kp=d DEBUG=True ALLOWED_HOSTS=.localhost,127.0.0.1 DATABASE_URL=sqlite:///db.sqlite3 EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend
マイグレーションでデータベースにテーブルを作成。
$ python manage.py migrate Operations to perform: Apply all migrations: admin, auth, boards, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying boards.0001_initial... OK Applying boards.0002_auto_20170917_1618... OK Applying boards.0003_topic_views... OK Applying sessions.0001_initial... OK
開発用サーバを起動。
$ python manage.py runserver
ブラウザで127.0.0.1:8000
にアクセス。ポート変更などをしたい場合は以下のように指定。
$ python manage.py runserver 0.0.0.0:3000
アクセスした際に下記メッセージが表示された場合は.env
のALLOWED_HOSTS
にIPアドレスを追記。
DisallowedHost at / Invalid HTTP_HOST header: '192.168.33.10:3000'. You may need to add '192.168.33.10' to ALLOWED_HOSTS.
ALLOWED_HOSTS=.localhost,127.0.0.1,192.168.33.10
画面は表示されるが掲示板がないため何もできない。
掲示板は管理者のみ作成可能のようなので管理者ユーザを作成。
$ python manage.py createsuperuser Username (leave blank to use 'vagrant'): admin Email address: admin@example.com Password: Password (again): Superuser created successfully.
admin/
にアクセスして(例:http://192.168.33.10:3000/admin/
)ログイン。
BoardsのAddで掲示板を作成すると表示されるようになる。
掲示板のトピックはMarkdownエディタで編集できるようだ。
このチュートリアルを完了するとこんな感じのアプリが作成できるので次回以降細かく見ていく。