現在勉強しているDjangoを使って、くじ引きアプリというものを作りたいと思います。
くじ引きアプリとは、よくお店にあるようなボックスに色々な紙に何かしらが書いてあり、それを引いて景品を貰うくじがありますが、これをWebサイトで作ろうと思います。
今回作成するものは、景品とかではなく自分でくじの内容を決めて、ランダムで表示させるという仕組みになります。
このアプリを作成しようと思った理由は、自分で設定した目標を達成した時に自分へのご褒美を上げたいと思い、それをくじ引きにしたら面白いんじゃないかと思ったのが理由です。
まだDjangoの勉強を始めたばかりなのでまずは、簡単なところから実装していこうと思いますので、興味があったら見て行ってください。
アプリ名
まずはアプリの名前を「TDL」にしてみました。
これは英語の「To draw lots」でくじという意味で特にひねりはありません(笑)
- アプリ名:TDL
環境
次に作成時の環境です。
- Ubuntu18
- Python 3.8.2
- django 3.0.8
現在の動作仕様(予定)
- くじ引き用のデータを入力する
- 実行してデータを表示する
使用するDB
- SQLite3(Python標準)
テーブル設計
- くじ引き項目(item)
- 登録ユーザ(author)
【手順】
1.プロジェクトを作成する
django-admin startproject myapptdl
2.appを作成する
cd myapptdl python manage.py startapp tdl
3.作成したappを登録する
ファイル:myapptdl>tdl>settings.py
コード:
<div data-token="urha9" data-note-copied="true" data-copied-from="19087009" data-single-text="true">INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'tdl.apps.TdlConfig', #追加 ]</div data-token="urha9" data-note-copied="true" data-copied-from="19087009" data-single-text="true">
4.データベースを登録する
ファイル:myapptdl>tdl>models.py
コード:
from django.db import models class Tdl(models.Model): item = models.CharField(max_length=200) author = models.ForeignKey( 'auth.User', on_delete=models.CASCADE, ) def __str__(self): return self.item
item:くじ引きの内容を入れる項目。最大200文字
author:投稿者を格納する項目
5.マイグレーションを行う
python manage.py makemigrations tdl Migrations for 'tdl': tdl/migrations/0001_initial.py - Create model Tdl python manage.py migrate
6.サンプルデータを登録する
サンプルデータを登録するため、Djangoの管理ツールを利用します。
まずは、管理ツールにアクセスするユーザを作成します。
python manage.py createsuperuser Username (leave blank to use 'test'): admin Email address: admin@test.co.jp Password: Password (again):
続いてTdlモデルを管理ツールで利用するために登録する必要があります。
そのために以下のコードを追加します。
ファイル:myapptdl>tdl>admin.py
コード:
from django.contrib import admin from .models import Tdl admin.site.register(Tdl)
adminサイトにTdlモデルを登録しています。
サーバを起動して、以下URLにアクセスします。
python manage.py runserver
「Tdls」をクリックして、次のサンプルを登録します。
Item:サンプル1
Author:admin
今日はここまでにして、次回はデータベースの内容を表示していきます。
ありがとうございました。
【参考にしたサイトと本】
コメント