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
89
Other Decks in Programming
See All in Programming
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.5k
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
230
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
150
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
380
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
400
SODA - FACT BOOK(JP)
sodainc
1
40k
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
300
No More NoSuchMethodError
exoego
1
120
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
150
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
First, design no harm
axbom
PRO
2
1.4k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
500
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Amusing Abliteration
ianozsvald
1
380
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Visualization
eitanlees
153
17k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.3k
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 アプリ を簡単に実装できる お⾦が絡むシステムで信頼ベースはきつい 都⽴⾼校って案外ちょろい