Djangoでくじ引きアプリを作ってみる_part1

lottery-146318_1280.png Django

現在勉強しているDjangoを使って、くじ引きアプリというものを作りたいと思います。

くじ引きアプリとは、よくお店にあるようなボックスに色々な紙に何かしらが書いてあり、それを引いて景品を貰うくじがありますが、これをWebサイトで作ろうと思います。

今回作成するものは、景品とかではなく自分でくじの内容を決めて、ランダムで表示させるという仕組みになります。

このアプリを作成しようと思った理由は、自分で設定した目標を達成した時に自分へのご褒美を上げたいと思い、それをくじ引きにしたら面白いんじゃないかと思ったのが理由です。

まだDjangoの勉強を始めたばかりなのでまずは、簡単なところから実装していこうと思いますので、興味があったら見て行ってください。

アプリ名

まずはアプリの名前を「TDL」にしてみました。
これは英語の「To draw lots」でくじという意味で特にひねりはありません(笑)

  • アプリ名:TDL

環境

次に作成時の環境です。

  • Ubuntu18
  • Python 3.8.2
  • django 3.0.8

現在の動作仕様(予定)

  1. くじ引き用のデータを入力する
  2. 実行してデータを表示する

使用する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
http://localhost:8000/admin

画像1

「Tdls」をクリックして、次のサンプルを登録します。

Item:サンプル1
Author:admin

画像2

今日はここまでにして、次回はデータベースの内容を表示していきます。

ありがとうございました。

【参考にしたサイトと本】

02:プロジェクトを準備しよう
03:データベースのモデルを作成しよう
04:Djangoの管理サイトを設定しよう

Python Django3超入門 (日本語) 単行本 – 2020/6/13

コメント

タイトルとURLをコピーしました