Cześć! Pracę z pythonem dopiero zaczynam, chcę napisać prostą aplikację webową.
Moim pomysłem jest "aplikacja", na której:
- rzucamy kostką
- wyświetla się łączna suma oczek wyrzuconych przez gościa
- wyświetlają się ostatnie rzuty
Oczywiście jest to bardzo prymitywne, jednak chciałbym posłuchać rad i jak do tego wszystkiego dojść, poniżej wrzucam kod programu (z błędami, nie mogę dojść do tego jak zrobić wyświetlenie ostatnich rzutów żeby sie to trzymało kupy)
PS. Pracę wykonuje na repl.it
from flask import Flask, url_for, request
import random
def create_app ():
app = Flask(__name__)
rzuty = {}
ostatnie = []
@app.route('/', defaults={'name': 'Guest'})
@app.route('/user/<name>')
def index (name):
Suma_rzuconych_oczek = rzuty.get(name, 0)
return f'''
<h2>{name} rzuca kostka</h2>
<p>Lacznie {name} rzucil {Suma_rzuconych_oczek} :-)</p>
<ul><li><a href="{url_for('add', name=name, nowy=10)}">Rzuc kostka</a></li>
<li><a href="{url_for('users', back=name)}">Zobacz wszystkich rzucajacych i ich wyniki</a></li>
<li><a href="{url_for('lastest', back=name)}">Zobacz ostatnie rzuty</a></li></ul>
'''
@app.route('/add/<name>', defaults={'nowy': 10})
@app.route('/add/<name>/<int:nowy>')
def add (name, nowy):
nowy = random.randint(1, 6)
rzuty[name] = rzuty.get(name, 0) + nowy
ostatnie.append(nowy)
return f'''
<h1>Oczka dodane</h1>
<p>{name} wyrzucil {nowy} oczek.</p>
<a href="{url_for('index', name=name)}">Back to rzuty</a>
'''
@app.route('/users/')
def users ():
points = [f'''
<li><a href="{url_for('index', name=name)}">{name}</a>: {rz}</li>
''' for name, rz in rzuty.items()]
name = request.args.get('back')
if name:
back_url = url_for('index', name=name)
else:
back_url = url_for('index')
return f'''
<h1>Wszyscy rzucający</h1>
<ul>{''.join(points)}</ul>
<a href="{back_url}">Back to {name}'s stats</a>
'''
@app.route('/lastest/')
def lastest ():
points = [f'''
<li><a href="{url_for('index', name=name)}">{name}</a>: [ostatnie]</li>
''' for name, nowy in ostatnie.items()]
name = request.args.get('back')
if name:
back_url = url_for('index', name=name)
else:
back_url = url_for('index')
return f'''
<h1>Ostatnie rzuty</h1>
<ul>{''.join(points)}</ul>
<a href="{back_url}">Back to {name}'s stats</a>
'''
return app
create_app().run('0.0.0.0')
Jeżeli również jest to jakoś w miare łatwę, myślałem aby było cos w stylu wybierania iloma kostkami rzucamy