Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
炭酸飲料が飲めない学校で炭酸飲料を飲めるよにした話
Search
Daniel
October 07, 2018
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
炭酸飲料が飲めない学校で炭酸飲料を飲めるよにした話
Daniel
October 07, 2018
More Decks by Daniel
See All by Daniel
Juliaで機械学習
peshogo
2
850
RISC-VボードでRustを動かす話
peshogo
1
990
一年生へ
peshogo
1
86
Other Decks in Programming
See All in Programming
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
850
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.4k
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
150
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
280
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.2k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
10
7.6k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
500
wkhtmltopdfの次どうするか問題2026
willnet
2
1.6k
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
730
Family mrubyの進捗
kishima
1
130
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
130
すこし踏み込む CancellationToken
htkym
2
720
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
Utilizing Notion as your number one productivity tool
mfonobong
4
590
Abbi's Birthday
coloredviolet
4
10k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Music & Morning Musume
bryan
48
7.4k
Building Adaptive Systems
keathley
44
3.2k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
850
BBQ
matthewcrist
89
10k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
330
Transcript
炭酸飲料が飲めない学校で 炭酸飲料を飲めるようにした話
⾃⼰紹介 ダニエル(⾼⽥勝悟) ⼋王⼦桑志⾼校システム情報分野 Python が好き
炭酸飲料が好きな⼈?
学校で炭酸飲料が買えない
炭酸飲料を売っている ⾃動販売機を作ってしまおう
その頃... Django ⾯⽩いな〜。 何か作ってみたいな〜。
⾃動販売機を管理するための Web アプリを作ろう
作ったもの 炭酸飲料を保管する箱 管理⽤Web アプリ
Django
データベース from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
データベース CREATE TABLE myapp_person ( "id" serial NOT NULL PRIMARY
KEY, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL );
from ... import Person p1 = Person(first_name="Shogo", last_name="Takata") p1.save() p2
= Person() p2.first_name = "Shogo" p2.last_name = "Takata" p2.save()
Django データベース HTML テンプレート ルータ ユーザー認証
⾃動販売機 ユーザー認証 商品 残⾼
商品 class Item(models.Model): product_name = models.CharField(max_length=200) product_price = models.IntegerField() product_price_with_fee
= models.IntegerField() added_date = models.DateTimeField(null=True) seller = models.ForeignKey(User, on_delete=models.SET_NULL,
売る
買う
class Log(models.Model): product_name = models.CharField(max_length=200) product_price = models.IntegerField() product_price_with_fee =
models.IntegerField() added_date = models.DateTimeField(null=True) deleted_date = models.DateTimeField(null=True) seller = models.ForeignKey( User, on_delete=models.SET_NULL, null=True, related_name buyer = models.ForeignKey( User, on_delete=models.SET_NULL, null=True, related_name
残⾼ 1. ユーザーDB につける 問題が起きたときに⾯倒 2. ログを遡って残⾼を⾒る 問題の起きたログだけ消せばいい ⼊⾦出⾦ができない 3.
⼊⾦出⾦もログに⼊れよう 商品名をIn , Out にしてシステムに買わせる
起きた問題
2 度売られてしまう問題 売ったあとページの再読込をすると、もう⼀度売った 判定が出る
解決 ⼀度しか使えないトークンを⽤意する ↓ 同時アクセスに対応できない
⼊⾦
⼊⾦
⼊⾦額が合わない
集めた税から出す しっかり確認する(未実装)
学校が炭酸飲料を⼊れた
学校「炭酸飲料は⼊荷しません」 クラス「仕⽅ない、⾃分たちで作ろう」 3 ヶ⽉後... 学校「炭酸飲料⼊荷します」 クラス「?!?!」
実績
まとめ Django を使えばデータベースを使ったWeb アプリ を簡単に実装できる お⾦が絡むシステムで信頼ベースはきつい 都⽴⾼校って案外ちょろい